diff --git a/index.html b/index.html index 47e8d1a54..b6c20eda8 100644 --- a/index.html +++ b/index.html @@ -19,7 +19,7 @@ - + diff --git a/libs/app.bundle.js b/libs/app.bundle.js index caece6bba..b81d04a0c 100644 --- a/libs/app.bundle.js +++ b/libs/app.bundle.js @@ -1,4 +1,65 @@ -(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.APP = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o APP.members.size()) + UIUtil.playSoundNotification('userLeft'); // Need to call this with a slight delay, otherwise the element couldn't be // found for some reason. // XXX(gp) it works fine without the timeout for me (with Chrome 38). @@ -2024,6 +2088,9 @@ function onMucMemberJoined(jid, id, displayName) { 'connected', 'notify.connected'); + if(!config.startAudioMuted || + config.startAudioMuted > APP.members.size()) + UIUtil.playSoundNotification('userJoined'); // Add Peer's container VideoLayout.ensurePeerContainerExists(jid,id); } @@ -2288,7 +2355,7 @@ UI.setVideoMute = setVideoMute; module.exports = UI; -},{"../../service/RTC/RTCEvents":97,"../../service/RTC/StreamEventTypes":99,"../../service/connectionquality/CQEvents":102,"../../service/desktopsharing/DesktopSharingEventTypes":103,"../../service/members/Events":104,"../../service/xmpp/XMPPEvents":106,"./../settings/Settings":40,"./audio_levels/AudioLevels.js":9,"./authentication/Authentication":11,"./avatar/Avatar":13,"./etherpad/Etherpad.js":14,"./prezi/Prezi.js":15,"./side_pannels/SidePanelToggler":17,"./side_pannels/chat/Chat.js":18,"./side_pannels/contactlist/ContactList":22,"./side_pannels/settings/SettingsMenu":23,"./toolbars/BottomToolbar":24,"./toolbars/Toolbar":25,"./toolbars/ToolbarToggler":26,"./util/MessageHandler":28,"./util/NicknameHandler":29,"./util/UIUtil":30,"./videolayout/VideoLayout.js":32,"./welcome_page/RoomnameGenerator":33,"./welcome_page/WelcomePage":34,"events":66}],9:[function(require,module,exports){ +},{"../../service/RTC/RTCEvents":96,"../../service/RTC/StreamEventTypes":98,"../../service/connectionquality/CQEvents":101,"../../service/desktopsharing/DesktopSharingEventTypes":102,"../../service/members/Events":103,"../../service/xmpp/XMPPEvents":105,"./../settings/Settings":41,"./audio_levels/AudioLevels.js":10,"./authentication/Authentication":12,"./avatar/Avatar":14,"./etherpad/Etherpad.js":15,"./prezi/Prezi.js":16,"./side_pannels/SidePanelToggler":18,"./side_pannels/chat/Chat.js":19,"./side_pannels/contactlist/ContactList":23,"./side_pannels/settings/SettingsMenu":24,"./toolbars/BottomToolbar":25,"./toolbars/Toolbar":26,"./toolbars/ToolbarToggler":27,"./util/MessageHandler":29,"./util/NicknameHandler":30,"./util/UIUtil":31,"./videolayout/VideoLayout.js":33,"./welcome_page/RoomnameGenerator":34,"./welcome_page/WelcomePage":35,"events":106}],10:[function(require,module,exports){ var CanvasUtil = require("./CanvasUtils"); var ASDrawContext = $('#activeSpeakerAudioLevel')[0].getContext('2d'); @@ -2554,7 +2621,7 @@ var AudioLevels = (function(my) { })(AudioLevels || {}); module.exports = AudioLevels; -},{"./CanvasUtils":10}],10:[function(require,module,exports){ +},{"./CanvasUtils":11}],11:[function(require,module,exports){ /** * Utility class for drawing canvas shapes. */ @@ -2666,7 +2733,7 @@ var CanvasUtil = (function(my) { })(CanvasUtil || {}); module.exports = CanvasUtil; -},{}],11:[function(require,module,exports){ +},{}],12:[function(require,module,exports){ /* global $, APP*/ var LoginDialog = require('./LoginDialog'); @@ -2791,7 +2858,7 @@ var Authentication = { }; module.exports = Authentication; -},{"../../xmpp/moderator":55,"./LoginDialog":12}],12:[function(require,module,exports){ +},{"../../xmpp/moderator":56,"./LoginDialog":13}],13:[function(require,module,exports){ /* global $, APP, config*/ var XMPP = require('../../xmpp/xmpp'); @@ -3020,7 +3087,7 @@ var LoginDialog = { }; module.exports = LoginDialog; -},{"../../xmpp/moderator":55,"../../xmpp/xmpp":63}],13:[function(require,module,exports){ +},{"../../xmpp/moderator":56,"../../xmpp/xmpp":64}],14:[function(require,module,exports){ var Settings = require("../../settings/Settings"); var MediaStreamType = require("../../../service/RTC/MediaStreamTypes"); @@ -3183,7 +3250,7 @@ var Avatar = { module.exports = Avatar; -},{"../../../service/RTC/MediaStreamTypes":95,"../../settings/Settings":40,"../videolayout/VideoLayout":32}],14:[function(require,module,exports){ +},{"../../../service/RTC/MediaStreamTypes":94,"../../settings/Settings":41,"../videolayout/VideoLayout":33}],15:[function(require,module,exports){ /* global $, config, setLargeVideoVisible, Util */ @@ -3379,7 +3446,7 @@ var Etherpad = { module.exports = Etherpad; -},{"../prezi/Prezi":15,"../util/UIUtil":30,"../videolayout/VideoLayout":32}],15:[function(require,module,exports){ +},{"../prezi/Prezi":16,"../util/UIUtil":31,"../videolayout/VideoLayout":33}],16:[function(require,module,exports){ var ToolbarToggler = require("../toolbars/ToolbarToggler"); var UIUtil = require("../util/UIUtil"); var VideoLayout = require("../videolayout/VideoLayout"); @@ -3755,7 +3822,7 @@ $(window).resize(function () { module.exports = Prezi; -},{"../toolbars/ToolbarToggler":26,"../util/MessageHandler":28,"../util/UIUtil":30,"../videolayout/VideoLayout":32,"./PreziPlayer":16}],16:[function(require,module,exports){ +},{"../toolbars/ToolbarToggler":27,"../util/MessageHandler":29,"../util/UIUtil":31,"../videolayout/VideoLayout":33,"./PreziPlayer":17}],17:[function(require,module,exports){ (function() { "use strict"; var __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; @@ -4051,7 +4118,7 @@ module.exports = Prezi; module.exports = PreziPlayer; -},{}],17:[function(require,module,exports){ +},{}],18:[function(require,module,exports){ var Chat = require("./chat/Chat"); var ContactList = require("./contactlist/ContactList"); var Settings = require("./../../settings/Settings"); @@ -4308,7 +4375,7 @@ var PanelToggler = (function(my) { }(PanelToggler || {})); module.exports = PanelToggler; -},{"../toolbars/ToolbarToggler":26,"../util/UIUtil":30,"../videolayout/VideoLayout":32,"./../../settings/Settings":40,"./chat/Chat":18,"./contactlist/ContactList":22,"./settings/SettingsMenu":23}],18:[function(require,module,exports){ +},{"../toolbars/ToolbarToggler":27,"../util/UIUtil":31,"../videolayout/VideoLayout":33,"./../../settings/Settings":41,"./chat/Chat":19,"./contactlist/ContactList":23,"./settings/SettingsMenu":24}],19:[function(require,module,exports){ /* global $, Util, nickname:true */ var Replacement = require("./Replacement"); var CommandsProcessor = require("./Commands"); @@ -4666,7 +4733,7 @@ var Chat = (function (my) { return my; }(Chat || {})); module.exports = Chat; -},{"../../../../service/UI/UIEvents":100,"../../toolbars/ToolbarToggler":26,"../../util/NicknameHandler":29,"../../util/UIUtil":30,"../SidePanelToggler":17,"./Commands":19,"./Replacement":20,"./smileys.json":21}],19:[function(require,module,exports){ +},{"../../../../service/UI/UIEvents":99,"../../toolbars/ToolbarToggler":27,"../../util/NicknameHandler":30,"../../util/UIUtil":31,"../SidePanelToggler":18,"./Commands":20,"./Replacement":21,"./smileys.json":22}],20:[function(require,module,exports){ var UIUtil = require("../../util/UIUtil"); /** @@ -4764,7 +4831,7 @@ CommandsProcessor.prototype.processCommand = function() }; module.exports = CommandsProcessor; -},{"../../util/UIUtil":30}],20:[function(require,module,exports){ +},{"../../util/UIUtil":31}],21:[function(require,module,exports){ var Smileys = require("./smileys.json"); /** * Processes links and smileys in "body" @@ -4828,7 +4895,7 @@ module.exports = { linkify: linkify }; -},{"./smileys.json":21}],21:[function(require,module,exports){ +},{"./smileys.json":22}],22:[function(require,module,exports){ module.exports={ "smileys": { "smiley1": ":)", @@ -4878,7 +4945,7 @@ module.exports={ } } -},{}],22:[function(require,module,exports){ +},{}],23:[function(require,module,exports){ var numberOfContacts = 0; var notificationInterval; @@ -5068,7 +5135,7 @@ var ContactList = { }; module.exports = ContactList; -},{}],23:[function(require,module,exports){ +},{}],24:[function(require,module,exports){ var Avatar = require("../../avatar/Avatar"); var Settings = require("./../../../settings/Settings"); var UIUtil = require("../../util/UIUtil"); @@ -5178,7 +5245,7 @@ var SettingsMenu = { module.exports = SettingsMenu; -},{"../../../../service/translation/languages":105,"../../avatar/Avatar":13,"../../util/UIUtil":30,"./../../../settings/Settings":40}],24:[function(require,module,exports){ +},{"../../../../service/translation/languages":104,"../../avatar/Avatar":14,"../../util/UIUtil":31,"./../../../settings/Settings":41}],25:[function(require,module,exports){ var PanelToggler = require("../side_pannels/SidePanelToggler"); var buttonHandlers = { @@ -5223,7 +5290,7 @@ var BottomToolbar = (function (my) { module.exports = BottomToolbar; -},{"../side_pannels/SidePanelToggler":17}],25:[function(require,module,exports){ +},{"../side_pannels/SidePanelToggler":18}],26:[function(require,module,exports){ /* global APP,$, buttonClick, config, lockRoom, setSharedKey, Util */ var messageHandler = require("../util/MessageHandler"); @@ -5872,7 +5939,7 @@ var Toolbar = (function (my) { }(Toolbar || {})); module.exports = Toolbar; -},{"../../../service/authentication/AuthenticationEvents":101,"../authentication/Authentication":11,"../etherpad/Etherpad":14,"../prezi/Prezi":15,"../side_pannels/SidePanelToggler":17,"../util/MessageHandler":28,"../util/UIUtil":30,"./BottomToolbar":24}],26:[function(require,module,exports){ +},{"../../../service/authentication/AuthenticationEvents":100,"../authentication/Authentication":12,"../etherpad/Etherpad":15,"../prezi/Prezi":16,"../side_pannels/SidePanelToggler":18,"../util/MessageHandler":29,"../util/UIUtil":31,"./BottomToolbar":25}],27:[function(require,module,exports){ /* global $, interfaceConfig, Moderator, DesktopStreaming.showDesktopSharingButton */ var toolbarTimeoutObject, @@ -5990,7 +6057,7 @@ var ToolbarToggler = { }; module.exports = ToolbarToggler; -},{}],27:[function(require,module,exports){ +},{}],28:[function(require,module,exports){ var JitsiPopover = (function () { /** * Constructs new JitsiPopover and attaches it to the element @@ -6114,7 +6181,7 @@ var JitsiPopover = (function () { })(); module.exports = JitsiPopover; -},{}],28:[function(require,module,exports){ +},{}],29:[function(require,module,exports){ /* global $, APP, jQuery, toastr */ var messageHandler = (function(my) { @@ -6322,7 +6389,7 @@ module.exports = messageHandler; -},{}],29:[function(require,module,exports){ +},{}],30:[function(require,module,exports){ var UIEvents = require("../../../service/UI/UIEvents"); var nickname = null; @@ -6353,7 +6420,7 @@ var NickanameHandler = { }; module.exports = NickanameHandler; -},{"../../../service/UI/UIEvents":100}],30:[function(require,module,exports){ +},{"../../../service/UI/UIEvents":99}],31:[function(require,module,exports){ /** * Created by hristo on 12/22/14. */ @@ -6435,7 +6502,7 @@ module.exports = { }; -},{"../side_pannels/SidePanelToggler":17}],31:[function(require,module,exports){ +},{"../side_pannels/SidePanelToggler":18}],32:[function(require,module,exports){ var JitsiPopover = require("../util/JitsiPopover"); /** @@ -6863,7 +6930,7 @@ ConnectionIndicator.prototype.hideIndicator = function () { }; module.exports = ConnectionIndicator; -},{"../util/JitsiPopover":27}],32:[function(require,module,exports){ +},{"../util/JitsiPopover":28}],33:[function(require,module,exports){ var AudioLevels = require("../audio_levels/AudioLevels"); var Avatar = require("../avatar/Avatar"); var Chat = require("../side_pannels/chat/Chat"); @@ -6893,12 +6960,6 @@ var eventEmitter = null; */ var focusedVideoInfo = null; -/** - * Indicates if we have muted our audio before the conference has started. - * @type {boolean} - */ -var preMuted = false; - var mutedAudios = {}; var flipXLocalVideo = true; @@ -7645,9 +7706,6 @@ var VideoLayout = (function (my) { container.id = 'mixedstream'; container.className = 'videocontainer'; remotes.appendChild(container); - if(!config.startAudioMuted || - config.startAudioMuted > APP.members.size()) - UIUtil.playSoundNotification('userJoined'); } if (container) { @@ -8168,9 +8226,6 @@ var VideoLayout = (function (my) { // Remove whole container container.remove(); - if(!config.startAudioMuted || - config.startAudioMuted > APP.members.size()) - UIUtil.playSoundNotification('userLeft'); VideoLayout.resizeThumbnails(); } @@ -9186,7 +9241,7 @@ var VideoLayout = (function (my) { }(VideoLayout || {})); module.exports = VideoLayout; -},{"../../../service/RTC/MediaStreamTypes":95,"../../../service/UI/UIEvents":100,"../audio_levels/AudioLevels":9,"../avatar/Avatar":13,"../etherpad/Etherpad":14,"../prezi/Prezi":15,"../side_pannels/chat/Chat":18,"../side_pannels/contactlist/ContactList":22,"../util/NicknameHandler":29,"../util/UIUtil":30,"./ConnectionIndicator":31}],33:[function(require,module,exports){ +},{"../../../service/RTC/MediaStreamTypes":94,"../../../service/UI/UIEvents":99,"../audio_levels/AudioLevels":10,"../avatar/Avatar":14,"../etherpad/Etherpad":15,"../prezi/Prezi":16,"../side_pannels/chat/Chat":19,"../side_pannels/contactlist/ContactList":23,"../util/NicknameHandler":30,"../util/UIUtil":31,"./ConnectionIndicator":32}],34:[function(require,module,exports){ //var nouns = [ //]; var pluralNouns = [ @@ -9367,7 +9422,7 @@ var RoomNameGenerator = { module.exports = RoomNameGenerator; -},{}],34:[function(require,module,exports){ +},{}],35:[function(require,module,exports){ var animateTimeout, updateTimeout; var RoomNameGenerator = require("./RoomnameGenerator"); @@ -9469,7 +9524,7 @@ function setupWelcomePage() } module.exports = setupWelcomePage; -},{"./RoomnameGenerator":33}],35:[function(require,module,exports){ +},{"./RoomnameGenerator":34}],36:[function(require,module,exports){ var params = {}; function getConfigParamsFromUrl() { if(!location.hash) @@ -9510,7 +9565,7 @@ var URLProcessor = { }; module.exports = URLProcessor; -},{}],36:[function(require,module,exports){ +},{}],37:[function(require,module,exports){ var EventEmitter = require("events"); var eventEmitter = new EventEmitter(); var CQEvents = require("../../service/connectionquality/CQEvents"); @@ -9645,7 +9700,7 @@ var ConnectionQuality = { }; module.exports = ConnectionQuality; -},{"../../service/connectionquality/CQEvents":102,"../../service/xmpp/XMPPEvents":106,"events":66}],37:[function(require,module,exports){ +},{"../../service/connectionquality/CQEvents":101,"../../service/xmpp/XMPPEvents":105,"events":106}],38:[function(require,module,exports){ /* global $, alert, APP, changeLocalVideo, chrome, config, getConferenceHandler, getUserMediaWithConstraints */ /** @@ -10013,7 +10068,7 @@ module.exports = { }; -},{"../../service/desktopsharing/DesktopSharingEventTypes":103,"events":66}],38:[function(require,module,exports){ +},{"../../service/desktopsharing/DesktopSharingEventTypes":102,"events":106}],39:[function(require,module,exports){ //maps keycode to character, id of popover for given function and function var shortcuts = { 67: { @@ -10106,7 +10161,7 @@ var KeyboardShortcut = { module.exports = KeyboardShortcut; -},{}],39:[function(require,module,exports){ +},{}],40:[function(require,module,exports){ /* global APP */ /** @@ -10237,7 +10292,7 @@ var Members = { module.exports = Members; -},{"../../service/members/Events":104,"../../service/xmpp/XMPPEvents":106,"events":66}],40:[function(require,module,exports){ +},{"../../service/members/Events":103,"../../service/xmpp/XMPPEvents":105,"events":106}],41:[function(require,module,exports){ var email = ''; var displayName = ''; var userId; @@ -10304,7 +10359,7 @@ var Settings = module.exports = Settings; -},{}],41:[function(require,module,exports){ +},{}],42:[function(require,module,exports){ /** * * @constructor @@ -10337,7 +10392,7 @@ SimulcastLogger.prototype.error = function (text) { }; module.exports = SimulcastLogger; -},{}],42:[function(require,module,exports){ +},{}],43:[function(require,module,exports){ var SimulcastLogger = require("./SimulcastLogger"); var SimulcastUtils = require("./SimulcastUtils"); var MediaStreamType = require("../../service/RTC/MediaStreamTypes"); @@ -10606,7 +10661,7 @@ SimulcastReceiver.prototype.transformRemoteDescription = function (desc) { }; module.exports = SimulcastReceiver; -},{"../../service/RTC/MediaStreamTypes":95,"./SimulcastLogger":41,"./SimulcastUtils":44}],43:[function(require,module,exports){ +},{"../../service/RTC/MediaStreamTypes":94,"./SimulcastLogger":42,"./SimulcastUtils":45}],44:[function(require,module,exports){ var SimulcastLogger = require("./SimulcastLogger"); var SimulcastUtils = require("./SimulcastUtils"); @@ -11129,7 +11184,7 @@ module.exports = { "no": NoSimulcastSender } -},{"./SimulcastLogger":41,"./SimulcastUtils":44}],44:[function(require,module,exports){ +},{"./SimulcastLogger":42,"./SimulcastUtils":45}],45:[function(require,module,exports){ var SimulcastLogger = require("./SimulcastLogger"); /** @@ -11363,7 +11418,7 @@ SimulcastUtils.prototype._compileVideoSources = function (videoSources) { }; module.exports = SimulcastUtils; -},{"./SimulcastLogger":41}],45:[function(require,module,exports){ +},{"./SimulcastLogger":42}],46:[function(require,module,exports){ /*jslint plusplus: true */ /*jslint nomen: true*/ @@ -11566,7 +11621,7 @@ SimulcastManager.prototype.resetSender = function() { var simulcast = new SimulcastManager(); module.exports = simulcast; -},{"../../service/RTC/RTCEvents":97,"./SimulcastReceiver":42,"./SimulcastSender":43,"./SimulcastUtils":44}],46:[function(require,module,exports){ +},{"../../service/RTC/RTCEvents":96,"./SimulcastReceiver":43,"./SimulcastSender":44,"./SimulcastUtils":45}],47:[function(require,module,exports){ /** * Provides statistics for the local stream. */ @@ -11697,7 +11752,7 @@ LocalStatsCollector.prototype.stop = function () { }; module.exports = LocalStatsCollector; -},{}],47:[function(require,module,exports){ +},{}],48:[function(require,module,exports){ /* global ssrc2jid */ /* jshint -W117 */ var RTCBrowserType = require("../../service/RTC/RTCBrowserType"); @@ -12439,7 +12494,7 @@ StatsCollector.prototype.processAudioLevelReport = function () }; -},{"../../service/RTC/RTCBrowserType":96}],48:[function(require,module,exports){ +},{"../../service/RTC/RTCBrowserType":95}],49:[function(require,module,exports){ /** * Created by hristo on 8/4/14. */ @@ -12572,7 +12627,7 @@ var statistics = module.exports = statistics; -},{"../../service/RTC/StreamEventTypes.js":99,"../../service/xmpp/XMPPEvents":106,"./LocalStatsCollector.js":46,"./RTPStatsCollector.js":47,"events":66}],49:[function(require,module,exports){ +},{"../../service/RTC/StreamEventTypes.js":98,"../../service/xmpp/XMPPEvents":105,"./LocalStatsCollector.js":47,"./RTPStatsCollector.js":48,"events":106}],50:[function(require,module,exports){ var i18n = require("i18next-client"); var languages = require("../../service/translation/languages"); var Settings = require("../settings/Settings"); @@ -12706,7 +12761,7 @@ module.exports = { } }; -},{"../../service/translation/languages":105,"../settings/Settings":40,"i18next-client":67}],50:[function(require,module,exports){ +},{"../../service/translation/languages":104,"../settings/Settings":41,"i18next-client":66}],51:[function(require,module,exports){ /* jshint -W117 */ var TraceablePeerConnection = require("./TraceablePeerConnection"); var SDPDiffer = require("./SDPDiffer"); @@ -14099,7 +14154,7 @@ JingleSession.prototype.remoteStreamAdded = function (data, times) { module.exports = JingleSession; -},{"../../service/RTC/RTCBrowserType":96,"./SDP":51,"./SDPDiffer":52,"./SDPUtil":53,"./TraceablePeerConnection":54,"async":64}],51:[function(require,module,exports){ +},{"../../service/RTC/RTCBrowserType":95,"./SDP":52,"./SDPDiffer":53,"./SDPUtil":54,"./TraceablePeerConnection":55,"async":65}],52:[function(require,module,exports){ /* jshint -W117 */ var SDPUtil = require("./SDPUtil"); @@ -14721,7 +14776,7 @@ SDP.prototype.jingle2media = function (content) { module.exports = SDP; -},{"./SDPUtil":53}],52:[function(require,module,exports){ +},{"./SDPUtil":54}],53:[function(require,module,exports){ function SDPDiffer(mySDP, otherSDP) { this.mySDP = mySDP; this.otherSDP = otherSDP; @@ -14887,7 +14942,7 @@ SDPDiffer.prototype.toJingle = function(modify) { }; module.exports = SDPDiffer; -},{}],53:[function(require,module,exports){ +},{}],54:[function(require,module,exports){ SDPUtil = { iceparams: function (mediadesc, sessiondesc) { var data = null; @@ -15237,7 +15292,7 @@ SDPUtil = { } }; module.exports = SDPUtil; -},{}],54:[function(require,module,exports){ +},{}],55:[function(require,module,exports){ function TraceablePeerConnection(ice_config, constraints) { var self = this; var RTCPeerconnection = navigator.mozGetUserMedia ? mozRTCPeerConnection : webkitRTCPeerConnection; @@ -15557,7 +15612,7 @@ TraceablePeerConnection.prototype.getStats = function(callback, errback) { module.exports = TraceablePeerConnection; -},{"sdp-interop":88}],55:[function(require,module,exports){ +},{"sdp-interop":87}],56:[function(require,module,exports){ /* global $, $iq, APP, config, connection, UI, messageHandler, roomName, sessionTerminated, Strophe, Util */ var XMPPEvents = require("../../service/xmpp/XMPPEvents"); @@ -15989,7 +16044,7 @@ module.exports = Moderator; -},{"../../service/authentication/AuthenticationEvents":101,"../../service/xmpp/XMPPEvents":106,"../settings/Settings":40}],56:[function(require,module,exports){ +},{"../../service/authentication/AuthenticationEvents":100,"../../service/xmpp/XMPPEvents":105,"../settings/Settings":41}],57:[function(require,module,exports){ /* global $, $iq, config, connection, focusMucJid, messageHandler, Moderator, Toolbar, Util */ var Moderator = require("./moderator"); @@ -16145,7 +16200,7 @@ var Recording = { } module.exports = Recording; -},{"./moderator":55}],57:[function(require,module,exports){ +},{"./moderator":56}],58:[function(require,module,exports){ /* jshint -W117 */ /* a simple MUC connection plugin * can only handle a single MUC room @@ -16838,7 +16893,7 @@ module.exports = function(XMPP, eventEmitter) { }; -},{"../../service/xmpp/XMPPEvents":106,"./JingleSession":50,"./moderator":55}],58:[function(require,module,exports){ +},{"../../service/xmpp/XMPPEvents":105,"./JingleSession":51,"./moderator":56}],59:[function(require,module,exports){ /* jshint -W117 */ var JingleSession = require("./JingleSession"); @@ -17185,7 +17240,7 @@ module.exports = function(XMPP, eventEmitter) }; -},{"../../service/xmpp/XMPPEvents":106,"./JingleSession":50}],59:[function(require,module,exports){ +},{"../../service/xmpp/XMPPEvents":105,"./JingleSession":51}],60:[function(require,module,exports){ /* global Strophe */ module.exports = function () { @@ -17206,7 +17261,7 @@ module.exports = function () { } }); }; -},{}],60:[function(require,module,exports){ +},{}],61:[function(require,module,exports){ /* global $, $iq, config, connection, focusMucJid, forceMuted, setAudioMuted, Strophe */ /** @@ -17265,7 +17320,7 @@ module.exports = function (XMPP) { } }); } -},{}],61:[function(require,module,exports){ +},{}],62:[function(require,module,exports){ /* jshint -W117 */ module.exports = function() { Strophe.addConnectionPlugin('rayo', @@ -17362,7 +17417,7 @@ module.exports = function() { ); }; -},{}],62:[function(require,module,exports){ +},{}],63:[function(require,module,exports){ /** * Strophe logger implementation. Logs from level WARN and above. */ @@ -17406,7 +17461,7 @@ module.exports = function () { }; }; -},{}],63:[function(require,module,exports){ +},{}],64:[function(require,module,exports){ /* global $, APP, config, Strophe*/ var Moderator = require("./moderator"); var EventEmitter = require("events"); @@ -18022,7 +18077,7 @@ var XMPP = { module.exports = XMPP; -},{"../../service/RTC/RTCEvents":97,"../../service/RTC/StreamEventTypes":99,"../../service/UI/UIEvents":100,"../../service/xmpp/XMPPEvents":106,"../settings/Settings":40,"./SDP":51,"./moderator":55,"./recording":56,"./strophe.emuc":57,"./strophe.jingle":58,"./strophe.logger":59,"./strophe.moderate":60,"./strophe.rayo":61,"./strophe.util":62,"events":66,"pako":68,"retry":84}],64:[function(require,module,exports){ +},{"../../service/RTC/RTCEvents":96,"../../service/RTC/StreamEventTypes":98,"../../service/UI/UIEvents":99,"../../service/xmpp/XMPPEvents":105,"../settings/Settings":41,"./SDP":52,"./moderator":56,"./recording":57,"./strophe.emuc":58,"./strophe.jingle":59,"./strophe.logger":60,"./strophe.moderate":61,"./strophe.rayo":62,"./strophe.util":63,"events":106,"pako":67,"retry":83}],65:[function(require,module,exports){ (function (process){ /*! * async @@ -19149,402 +19204,7 @@ module.exports = XMPP; }()); }).call(this,require('_process')) -},{"_process":65}],65:[function(require,module,exports){ -// shim for using process in browser - -var process = module.exports = {}; -var queue = []; -var draining = false; -var currentQueue; -var queueIndex = -1; - -function cleanUpNextTick() { - draining = false; - if (currentQueue.length) { - queue = currentQueue.concat(queue); - } else { - queueIndex = -1; - } - if (queue.length) { - drainQueue(); - } -} - -function drainQueue() { - if (draining) { - return; - } - var timeout = setTimeout(cleanUpNextTick); - draining = true; - - var len = queue.length; - while(len) { - currentQueue = queue; - queue = []; - while (++queueIndex < len) { - currentQueue[queueIndex].run(); - } - queueIndex = -1; - len = queue.length; - } - currentQueue = null; - draining = false; - clearTimeout(timeout); -} - -process.nextTick = function (fun) { - var args = new Array(arguments.length - 1); - if (arguments.length > 1) { - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; - } - } - queue.push(new Item(fun, args)); - if (!draining) { - setTimeout(drainQueue, 0); - } -}; - -// v8 likes predictible objects -function Item(fun, array) { - this.fun = fun; - this.array = array; -} -Item.prototype.run = function () { - this.fun.apply(null, this.array); -}; -process.title = 'browser'; -process.browser = true; -process.env = {}; -process.argv = []; -process.version = ''; // empty string to avoid regexp issues -process.versions = {}; - -function noop() {} - -process.on = noop; -process.addListener = noop; -process.once = noop; -process.off = noop; -process.removeListener = noop; -process.removeAllListeners = noop; -process.emit = noop; - -process.binding = function (name) { - throw new Error('process.binding is not supported'); -}; - -// TODO(shtylman) -process.cwd = function () { return '/' }; -process.chdir = function (dir) { - throw new Error('process.chdir is not supported'); -}; -process.umask = function() { return 0; }; - -},{}],66:[function(require,module,exports){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -function EventEmitter() { - this._events = this._events || {}; - this._maxListeners = this._maxListeners || undefined; -} -module.exports = EventEmitter; - -// Backwards-compat with node 0.10.x -EventEmitter.EventEmitter = EventEmitter; - -EventEmitter.prototype._events = undefined; -EventEmitter.prototype._maxListeners = undefined; - -// By default EventEmitters will print a warning if more than 10 listeners are -// added to it. This is a useful default which helps finding memory leaks. -EventEmitter.defaultMaxListeners = 10; - -// Obviously not all Emitters should be limited to 10. This function allows -// that to be increased. Set to zero for unlimited. -EventEmitter.prototype.setMaxListeners = function(n) { - if (!isNumber(n) || n < 0 || isNaN(n)) - throw TypeError('n must be a positive number'); - this._maxListeners = n; - return this; -}; - -EventEmitter.prototype.emit = function(type) { - var er, handler, len, args, i, listeners; - - if (!this._events) - this._events = {}; - - // If there is no 'error' event listener then throw. - if (type === 'error') { - if (!this._events.error || - (isObject(this._events.error) && !this._events.error.length)) { - er = arguments[1]; - if (er instanceof Error) { - throw er; // Unhandled 'error' event - } - throw TypeError('Uncaught, unspecified "error" event.'); - } - } - - handler = this._events[type]; - - if (isUndefined(handler)) - return false; - - if (isFunction(handler)) { - switch (arguments.length) { - // fast cases - case 1: - handler.call(this); - break; - case 2: - handler.call(this, arguments[1]); - break; - case 3: - handler.call(this, arguments[1], arguments[2]); - break; - // slower - default: - len = arguments.length; - args = new Array(len - 1); - for (i = 1; i < len; i++) - args[i - 1] = arguments[i]; - handler.apply(this, args); - } - } else if (isObject(handler)) { - len = arguments.length; - args = new Array(len - 1); - for (i = 1; i < len; i++) - args[i - 1] = arguments[i]; - - listeners = handler.slice(); - len = listeners.length; - for (i = 0; i < len; i++) - listeners[i].apply(this, args); - } - - return true; -}; - -EventEmitter.prototype.addListener = function(type, listener) { - var m; - - if (!isFunction(listener)) - throw TypeError('listener must be a function'); - - if (!this._events) - this._events = {}; - - // To avoid recursion in the case that type === "newListener"! Before - // adding it to the listeners, first emit "newListener". - if (this._events.newListener) - this.emit('newListener', type, - isFunction(listener.listener) ? - listener.listener : listener); - - if (!this._events[type]) - // Optimize the case of one listener. Don't need the extra array object. - this._events[type] = listener; - else if (isObject(this._events[type])) - // If we've already got an array, just append. - this._events[type].push(listener); - else - // Adding the second element, need to change to array. - this._events[type] = [this._events[type], listener]; - - // Check for listener leak - if (isObject(this._events[type]) && !this._events[type].warned) { - var m; - if (!isUndefined(this._maxListeners)) { - m = this._maxListeners; - } else { - m = EventEmitter.defaultMaxListeners; - } - - if (m && m > 0 && this._events[type].length > m) { - this._events[type].warned = true; - console.error('(node) warning: possible EventEmitter memory ' + - 'leak detected. %d listeners added. ' + - 'Use emitter.setMaxListeners() to increase limit.', - this._events[type].length); - if (typeof console.trace === 'function') { - // not supported in IE 10 - console.trace(); - } - } - } - - return this; -}; - -EventEmitter.prototype.on = EventEmitter.prototype.addListener; - -EventEmitter.prototype.once = function(type, listener) { - if (!isFunction(listener)) - throw TypeError('listener must be a function'); - - var fired = false; - - function g() { - this.removeListener(type, g); - - if (!fired) { - fired = true; - listener.apply(this, arguments); - } - } - - g.listener = listener; - this.on(type, g); - - return this; -}; - -// emits a 'removeListener' event iff the listener was removed -EventEmitter.prototype.removeListener = function(type, listener) { - var list, position, length, i; - - if (!isFunction(listener)) - throw TypeError('listener must be a function'); - - if (!this._events || !this._events[type]) - return this; - - list = this._events[type]; - length = list.length; - position = -1; - - if (list === listener || - (isFunction(list.listener) && list.listener === listener)) { - delete this._events[type]; - if (this._events.removeListener) - this.emit('removeListener', type, listener); - - } else if (isObject(list)) { - for (i = length; i-- > 0;) { - if (list[i] === listener || - (list[i].listener && list[i].listener === listener)) { - position = i; - break; - } - } - - if (position < 0) - return this; - - if (list.length === 1) { - list.length = 0; - delete this._events[type]; - } else { - list.splice(position, 1); - } - - if (this._events.removeListener) - this.emit('removeListener', type, listener); - } - - return this; -}; - -EventEmitter.prototype.removeAllListeners = function(type) { - var key, listeners; - - if (!this._events) - return this; - - // not listening for removeListener, no need to emit - if (!this._events.removeListener) { - if (arguments.length === 0) - this._events = {}; - else if (this._events[type]) - delete this._events[type]; - return this; - } - - // emit removeListener for all listeners on all events - if (arguments.length === 0) { - for (key in this._events) { - if (key === 'removeListener') continue; - this.removeAllListeners(key); - } - this.removeAllListeners('removeListener'); - this._events = {}; - return this; - } - - listeners = this._events[type]; - - if (isFunction(listeners)) { - this.removeListener(type, listeners); - } else { - // LIFO order - while (listeners.length) - this.removeListener(type, listeners[listeners.length - 1]); - } - delete this._events[type]; - - return this; -}; - -EventEmitter.prototype.listeners = function(type) { - var ret; - if (!this._events || !this._events[type]) - ret = []; - else if (isFunction(this._events[type])) - ret = [this._events[type]]; - else - ret = this._events[type].slice(); - return ret; -}; - -EventEmitter.listenerCount = function(emitter, type) { - var ret; - if (!emitter._events || !emitter._events[type]) - ret = 0; - else if (isFunction(emitter._events[type])) - ret = 1; - else - ret = emitter._events[type].length; - return ret; -}; - -function isFunction(arg) { - return typeof arg === 'function'; -} - -function isNumber(arg) { - return typeof arg === 'number'; -} - -function isObject(arg) { - return typeof arg === 'object' && arg !== null; -} - -function isUndefined(arg) { - return arg === void 0; -} - -},{}],67:[function(require,module,exports){ +},{"_process":107}],66:[function(require,module,exports){ // i18next, v1.7.7 // Copyright (c)2014 Jan Mühlemann (jamuhl). // Distributed under MIT license @@ -21667,7 +21327,7 @@ function isUndefined(arg) { i18n.options = o; })(); -},{"jquery":"jquery"}],68:[function(require,module,exports){ +},{"jquery":"jquery"}],67:[function(require,module,exports){ // Top level file is just a mixin of submodules & constants 'use strict'; @@ -21682,7 +21342,7 @@ var pako = {}; assign(pako, deflate, inflate, constants); module.exports = pako; -},{"./lib/deflate":69,"./lib/inflate":70,"./lib/utils/common":71,"./lib/zlib/constants":74}],69:[function(require,module,exports){ +},{"./lib/deflate":68,"./lib/inflate":69,"./lib/utils/common":70,"./lib/zlib/constants":73}],68:[function(require,module,exports){ 'use strict'; @@ -22047,7 +21707,7 @@ exports.Deflate = Deflate; exports.deflate = deflate; exports.deflateRaw = deflateRaw; exports.gzip = gzip; -},{"./utils/common":71,"./utils/strings":72,"./zlib/deflate.js":76,"./zlib/messages":81,"./zlib/zstream":83}],70:[function(require,module,exports){ +},{"./utils/common":70,"./utils/strings":71,"./zlib/deflate.js":75,"./zlib/messages":80,"./zlib/zstream":82}],69:[function(require,module,exports){ 'use strict'; @@ -22416,7 +22076,7 @@ exports.inflate = inflate; exports.inflateRaw = inflateRaw; exports.ungzip = inflate; -},{"./utils/common":71,"./utils/strings":72,"./zlib/constants":74,"./zlib/gzheader":77,"./zlib/inflate.js":79,"./zlib/messages":81,"./zlib/zstream":83}],71:[function(require,module,exports){ +},{"./utils/common":70,"./utils/strings":71,"./zlib/constants":73,"./zlib/gzheader":76,"./zlib/inflate.js":78,"./zlib/messages":80,"./zlib/zstream":82}],70:[function(require,module,exports){ 'use strict'; @@ -22519,7 +22179,7 @@ exports.setTyped = function (on) { }; exports.setTyped(TYPED_OK); -},{}],72:[function(require,module,exports){ +},{}],71:[function(require,module,exports){ // String encode/decode helpers 'use strict'; @@ -22706,7 +22366,7 @@ exports.utf8border = function(buf, max) { return (pos + _utf8len[buf[pos]] > max) ? pos : max; }; -},{"./common":71}],73:[function(require,module,exports){ +},{"./common":70}],72:[function(require,module,exports){ 'use strict'; // Note: adler32 takes 12% for level 0 and 2% for level 6. @@ -22739,7 +22399,7 @@ function adler32(adler, buf, len, pos) { module.exports = adler32; -},{}],74:[function(require,module,exports){ +},{}],73:[function(require,module,exports){ module.exports = { /* Allowed flush values; see deflate() and inflate() below for details */ @@ -22787,7 +22447,7 @@ module.exports = { Z_DEFLATED: 8 //Z_NULL: null // Use -1 or null inline, depending on var type }; -},{}],75:[function(require,module,exports){ +},{}],74:[function(require,module,exports){ 'use strict'; // Note: we can't get significant speed boost here. @@ -22829,7 +22489,7 @@ function crc32(crc, buf, len, pos) { module.exports = crc32; -},{}],76:[function(require,module,exports){ +},{}],75:[function(require,module,exports){ 'use strict'; var utils = require('../utils/common'); @@ -24595,7 +24255,7 @@ exports.deflatePending = deflatePending; exports.deflatePrime = deflatePrime; exports.deflateTune = deflateTune; */ -},{"../utils/common":71,"./adler32":73,"./crc32":75,"./messages":81,"./trees":82}],77:[function(require,module,exports){ +},{"../utils/common":70,"./adler32":72,"./crc32":74,"./messages":80,"./trees":81}],76:[function(require,module,exports){ 'use strict'; @@ -24636,7 +24296,7 @@ function GZheader() { } module.exports = GZheader; -},{}],78:[function(require,module,exports){ +},{}],77:[function(require,module,exports){ 'use strict'; // See state defs from inflate.js @@ -24963,7 +24623,7 @@ module.exports = function inflate_fast(strm, start) { return; }; -},{}],79:[function(require,module,exports){ +},{}],78:[function(require,module,exports){ 'use strict'; @@ -26467,7 +26127,7 @@ exports.inflateSync = inflateSync; exports.inflateSyncPoint = inflateSyncPoint; exports.inflateUndermine = inflateUndermine; */ -},{"../utils/common":71,"./adler32":73,"./crc32":75,"./inffast":78,"./inftrees":80}],80:[function(require,module,exports){ +},{"../utils/common":70,"./adler32":72,"./crc32":74,"./inffast":77,"./inftrees":79}],79:[function(require,module,exports){ 'use strict'; @@ -26794,7 +26454,7 @@ module.exports = function inflate_table(type, lens, lens_index, codes, table, ta return 0; }; -},{"../utils/common":71}],81:[function(require,module,exports){ +},{"../utils/common":70}],80:[function(require,module,exports){ 'use strict'; module.exports = { @@ -26808,7 +26468,7 @@ module.exports = { '-5': 'buffer error', /* Z_BUF_ERROR (-5) */ '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */ }; -},{}],82:[function(require,module,exports){ +},{}],81:[function(require,module,exports){ 'use strict'; @@ -28008,7 +27668,7 @@ exports._tr_stored_block = _tr_stored_block; exports._tr_flush_block = _tr_flush_block; exports._tr_tally = _tr_tally; exports._tr_align = _tr_align; -},{"../utils/common":71}],83:[function(require,module,exports){ +},{"../utils/common":70}],82:[function(require,module,exports){ 'use strict'; @@ -28038,9 +27698,9 @@ function ZStream() { } module.exports = ZStream; -},{}],84:[function(require,module,exports){ +},{}],83:[function(require,module,exports){ module.exports = require('./lib/retry'); -},{"./lib/retry":85}],85:[function(require,module,exports){ +},{"./lib/retry":84}],84:[function(require,module,exports){ var RetryOperation = require('./retry_operation'); exports.operation = function(options) { @@ -28091,7 +27751,7 @@ exports._createTimeout = function(attempt, opts) { return timeout; }; -},{"./retry_operation":86}],86:[function(require,module,exports){ +},{"./retry_operation":85}],85:[function(require,module,exports){ function RetryOperation(timeouts) { this._timeouts = timeouts; this._fn = null; @@ -28201,7 +27861,7 @@ RetryOperation.prototype.mainError = function() { return mainError; }; -},{}],87:[function(require,module,exports){ +},{}],86:[function(require,module,exports){ module.exports = function arrayEquals(array) { // if the other array is a falsy value, return if (!array) @@ -28227,10 +27887,10 @@ module.exports = function arrayEquals(array) { } -},{}],88:[function(require,module,exports){ +},{}],87:[function(require,module,exports){ exports.Interop = require('./interop'); -},{"./interop":89}],89:[function(require,module,exports){ +},{"./interop":88}],88:[function(require,module,exports){ "use strict"; var transform = require('./transform'); @@ -28812,7 +28472,7 @@ Interop.prototype.toUnifiedPlan = function(desc) { //#endregion }; -},{"./array-equals":87,"./transform":90}],90:[function(require,module,exports){ +},{"./array-equals":86,"./transform":89}],89:[function(require,module,exports){ var transform = require('sdp-transform'); exports.write = function(session, opts) { @@ -28911,7 +28571,7 @@ exports.parse = function(sdp) { }; -},{"sdp-transform":92}],91:[function(require,module,exports){ +},{"sdp-transform":91}],90:[function(require,module,exports){ var grammar = module.exports = { v: [{ name: 'version', @@ -29160,7 +28820,7 @@ Object.keys(grammar).forEach(function (key) { }); }); -},{}],92:[function(require,module,exports){ +},{}],91:[function(require,module,exports){ var parser = require('./parser'); var writer = require('./writer'); @@ -29170,7 +28830,7 @@ exports.parseFmtpConfig = parser.parseFmtpConfig; exports.parsePayloads = parser.parsePayloads; exports.parseRemoteCandidates = parser.parseRemoteCandidates; -},{"./parser":93,"./writer":94}],93:[function(require,module,exports){ +},{"./parser":92,"./writer":93}],92:[function(require,module,exports){ var toIntIfInt = function (v) { return String(Number(v)) === v ? Number(v) : v; }; @@ -29265,7 +28925,7 @@ exports.parseRemoteCandidates = function (str) { return candidates; }; -},{"./grammar":91}],94:[function(require,module,exports){ +},{"./grammar":90}],93:[function(require,module,exports){ var grammar = require('./grammar'); // customized util.format - discards excess arguments and can void middle ones @@ -29381,14 +29041,14 @@ module.exports = function (session, opts) { return sdp.join('\r\n') + '\r\n'; }; -},{"./grammar":91}],95:[function(require,module,exports){ +},{"./grammar":90}],94:[function(require,module,exports){ var MediaStreamType = { VIDEO_TYPE: "Video", AUDIO_TYPE: "Audio" }; module.exports = MediaStreamType; -},{}],96:[function(require,module,exports){ +},{}],95:[function(require,module,exports){ var RTCBrowserType = { RTC_BROWSER_CHROME: "rtc_browser.chrome", @@ -29396,7 +29056,7 @@ var RTCBrowserType = { }; module.exports = RTCBrowserType; -},{}],97:[function(require,module,exports){ +},{}],96:[function(require,module,exports){ var RTCEvents = { LASTN_CHANGED: "rtc.lastn_changed", DOMINANTSPEAKER_CHANGED: "rtc.dominantspeaker_changed", @@ -29409,7 +29069,7 @@ var RTCEvents = { }; module.exports = RTCEvents; -},{}],98:[function(require,module,exports){ +},{}],97:[function(require,module,exports){ var Resolutions = { "1080": { width: 1920, @@ -29463,7 +29123,7 @@ var Resolutions = { } }; module.exports = Resolutions; -},{}],99:[function(require,module,exports){ +},{}],98:[function(require,module,exports){ var StreamEventTypes = { EVENT_TYPE_LOCAL_CREATED: "stream.local_created", @@ -29479,14 +29139,14 @@ var StreamEventTypes = { }; module.exports = StreamEventTypes; -},{}],100:[function(require,module,exports){ +},{}],99:[function(require,module,exports){ var UIEvents = { NICKNAME_CHANGED: "UI.nickname_changed", SELECTED_ENDPOINT: "UI.selected_endpoint", PINNED_ENDPOINT: "UI.pinned_endpoint" }; module.exports = UIEvents; -},{}],101:[function(require,module,exports){ +},{}],100:[function(require,module,exports){ var AuthenticationEvents = { /** * Event callback arguments: @@ -29500,7 +29160,7 @@ var AuthenticationEvents = { }; module.exports = AuthenticationEvents; -},{}],102:[function(require,module,exports){ +},{}],101:[function(require,module,exports){ var CQEvents = { LOCALSTATS_UPDATED: "cq.localstats_updated", REMOTESTATS_UPDATED: "cq.remotestats_updated", @@ -29508,7 +29168,7 @@ var CQEvents = { }; module.exports = CQEvents; -},{}],103:[function(require,module,exports){ +},{}],102:[function(require,module,exports){ var DesktopSharingEventTypes = { INIT: "ds.init", @@ -29518,14 +29178,14 @@ var DesktopSharingEventTypes = { }; module.exports = DesktopSharingEventTypes; -},{}],104:[function(require,module,exports){ +},{}],103:[function(require,module,exports){ var Events = { DTMF_SUPPORT_CHANGED: "members.dtmf_support_changed" }; module.exports = Events; -},{}],105:[function(require,module,exports){ +},{}],104:[function(require,module,exports){ module.exports = { getLanguages : function () { var languages = []; @@ -29541,7 +29201,7 @@ module.exports = { DE: "de", TR: "tr" } -},{}],106:[function(require,module,exports){ +},{}],105:[function(require,module,exports){ var XMPPEvents = { CONNECTION_FAILED: "xmpp.connection.failed", CONFERENCE_CREATED: "xmpp.conferenceCreated.jingle", @@ -29577,66 +29237,367 @@ var XMPPEvents = { START_MUTED: "xmpp.start_muted" }; module.exports = XMPPEvents; -},{}],107:[function(require,module,exports){ -/* jshint -W117 */ -/* application specific logic */ +},{}],106:[function(require,module,exports){ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. -var APP = -{ - init: function () { - this.UI = require("./modules/UI/UI"); - this.API = require("./modules/API/API"); - this.connectionquality = require("./modules/connectionquality/connectionquality"); - this.statistics = require("./modules/statistics/statistics"); - this.RTC = require("./modules/RTC/RTC"); - this.simulcast = require("./modules/simulcast/simulcast"); - this.desktopsharing = require("./modules/desktopsharing/desktopsharing"); - this.xmpp = require("./modules/xmpp/xmpp"); - this.keyboardshortcut = require("./modules/keyboardshortcut/keyboardshortcut"); - this.translation = require("./modules/translation/translation"); - this.settings = require("./modules/settings/Settings"); - this.DTMF = require("./modules/DTMF/DTMF"); - this.members = require("./modules/members/MemberList"); +function EventEmitter() { + this._events = this._events || {}; + this._maxListeners = this._maxListeners || undefined; +} +module.exports = EventEmitter; + +// Backwards-compat with node 0.10.x +EventEmitter.EventEmitter = EventEmitter; + +EventEmitter.prototype._events = undefined; +EventEmitter.prototype._maxListeners = undefined; + +// By default EventEmitters will print a warning if more than 10 listeners are +// added to it. This is a useful default which helps finding memory leaks. +EventEmitter.defaultMaxListeners = 10; + +// Obviously not all Emitters should be limited to 10. This function allows +// that to be increased. Set to zero for unlimited. +EventEmitter.prototype.setMaxListeners = function(n) { + if (!isNumber(n) || n < 0 || isNaN(n)) + throw TypeError('n must be a positive number'); + this._maxListeners = n; + return this; +}; + +EventEmitter.prototype.emit = function(type) { + var er, handler, len, args, i, listeners; + + if (!this._events) + this._events = {}; + + // If there is no 'error' event listener then throw. + if (type === 'error') { + if (!this._events.error || + (isObject(this._events.error) && !this._events.error.length)) { + er = arguments[1]; + if (er instanceof Error) { + throw er; // Unhandled 'error' event + } + throw TypeError('Uncaught, unspecified "error" event.'); + } + } + + handler = this._events[type]; + + if (isUndefined(handler)) + return false; + + if (isFunction(handler)) { + switch (arguments.length) { + // fast cases + case 1: + handler.call(this); + break; + case 2: + handler.call(this, arguments[1]); + break; + case 3: + handler.call(this, arguments[1], arguments[2]); + break; + // slower + default: + len = arguments.length; + args = new Array(len - 1); + for (i = 1; i < len; i++) + args[i - 1] = arguments[i]; + handler.apply(this, args); + } + } else if (isObject(handler)) { + len = arguments.length; + args = new Array(len - 1); + for (i = 1; i < len; i++) + args[i - 1] = arguments[i]; + + listeners = handler.slice(); + len = listeners.length; + for (i = 0; i < len; i++) + listeners[i].apply(this, args); + } + + return true; +}; + +EventEmitter.prototype.addListener = function(type, listener) { + var m; + + if (!isFunction(listener)) + throw TypeError('listener must be a function'); + + if (!this._events) + this._events = {}; + + // To avoid recursion in the case that type === "newListener"! Before + // adding it to the listeners, first emit "newListener". + if (this._events.newListener) + this.emit('newListener', type, + isFunction(listener.listener) ? + listener.listener : listener); + + if (!this._events[type]) + // Optimize the case of one listener. Don't need the extra array object. + this._events[type] = listener; + else if (isObject(this._events[type])) + // If we've already got an array, just append. + this._events[type].push(listener); + else + // Adding the second element, need to change to array. + this._events[type] = [this._events[type], listener]; + + // Check for listener leak + if (isObject(this._events[type]) && !this._events[type].warned) { + var m; + if (!isUndefined(this._maxListeners)) { + m = this._maxListeners; + } else { + m = EventEmitter.defaultMaxListeners; + } + + if (m && m > 0 && this._events[type].length > m) { + this._events[type].warned = true; + console.error('(node) warning: possible EventEmitter memory ' + + 'leak detected. %d listeners added. ' + + 'Use emitter.setMaxListeners() to increase limit.', + this._events[type].length); + if (typeof console.trace === 'function') { + // not supported in IE 10 + console.trace(); + } + } + } + + return this; +}; + +EventEmitter.prototype.on = EventEmitter.prototype.addListener; + +EventEmitter.prototype.once = function(type, listener) { + if (!isFunction(listener)) + throw TypeError('listener must be a function'); + + var fired = false; + + function g() { + this.removeListener(type, g); + + if (!fired) { + fired = true; + listener.apply(this, arguments); + } + } + + g.listener = listener; + this.on(type, g); + + return this; +}; + +// emits a 'removeListener' event iff the listener was removed +EventEmitter.prototype.removeListener = function(type, listener) { + var list, position, length, i; + + if (!isFunction(listener)) + throw TypeError('listener must be a function'); + + if (!this._events || !this._events[type]) + return this; + + list = this._events[type]; + length = list.length; + position = -1; + + if (list === listener || + (isFunction(list.listener) && list.listener === listener)) { + delete this._events[type]; + if (this._events.removeListener) + this.emit('removeListener', type, listener); + + } else if (isObject(list)) { + for (i = length; i-- > 0;) { + if (list[i] === listener || + (list[i].listener && list[i].listener === listener)) { + position = i; + break; + } + } + + if (position < 0) + return this; + + if (list.length === 1) { + list.length = 0; + delete this._events[type]; + } else { + list.splice(position, 1); + } + + if (this._events.removeListener) + this.emit('removeListener', type, listener); + } + + return this; +}; + +EventEmitter.prototype.removeAllListeners = function(type) { + var key, listeners; + + if (!this._events) + return this; + + // not listening for removeListener, no need to emit + if (!this._events.removeListener) { + if (arguments.length === 0) + this._events = {}; + else if (this._events[type]) + delete this._events[type]; + return this; + } + + // emit removeListener for all listeners on all events + if (arguments.length === 0) { + for (key in this._events) { + if (key === 'removeListener') continue; + this.removeAllListeners(key); + } + this.removeAllListeners('removeListener'); + this._events = {}; + return this; + } + + listeners = this._events[type]; + + if (isFunction(listeners)) { + this.removeListener(type, listeners); + } else { + // LIFO order + while (listeners.length) + this.removeListener(type, listeners[listeners.length - 1]); + } + delete this._events[type]; + + return this; +}; + +EventEmitter.prototype.listeners = function(type) { + var ret; + if (!this._events || !this._events[type]) + ret = []; + else if (isFunction(this._events[type])) + ret = [this._events[type]]; + else + ret = this._events[type].slice(); + return ret; +}; + +EventEmitter.listenerCount = function(emitter, type) { + var ret; + if (!emitter._events || !emitter._events[type]) + ret = 0; + else if (isFunction(emitter._events[type])) + ret = 1; + else + ret = emitter._events[type].length; + return ret; +}; + +function isFunction(arg) { + return typeof arg === 'function'; +} + +function isNumber(arg) { + return typeof arg === 'number'; +} + +function isObject(arg) { + return typeof arg === 'object' && arg !== null; +} + +function isUndefined(arg) { + return arg === void 0; +} + +},{}],107:[function(require,module,exports){ +// shim for using process in browser + +var process = module.exports = {}; +var queue = []; +var draining = false; + +function drainQueue() { + if (draining) { + return; + } + draining = true; + var currentQueue; + var len = queue.length; + while(len) { + currentQueue = queue; + queue = []; + var i = -1; + while (++i < len) { + currentQueue[i](); + } + len = queue.length; + } + draining = false; +} +process.nextTick = function (fun) { + queue.push(fun); + if (!draining) { + setTimeout(drainQueue, 0); } }; -function init() { +process.title = 'browser'; +process.browser = true; +process.env = {}; +process.argv = []; +process.version = ''; // empty string to avoid regexp issues - APP.RTC.start(); - APP.xmpp.start(); - APP.statistics.start(); - APP.connectionquality.init(); +function noop() {} - // Set default desktop sharing method - APP.desktopsharing.init(); +process.on = noop; +process.addListener = noop; +process.once = noop; +process.off = noop; +process.removeListener = noop; +process.removeAllListeners = noop; +process.emit = noop; - APP.keyboardshortcut.init(); - APP.members.start(); -} +process.binding = function (name) { + throw new Error('process.binding is not supported'); +}; +// TODO(shtylman) +process.cwd = function () { return '/' }; +process.chdir = function (dir) { + throw new Error('process.chdir is not supported'); +}; +process.umask = function() { return 0; }; -$(document).ready(function () { - - var URLPRocessor = require("./modules/URLProcessor/URLProcessor"); - URLPRocessor.setConfigParametersFromUrl(); - APP.init(); - - APP.translation.init(); - - if(APP.API.isEnabled()) - APP.API.init(); - - APP.UI.start(init); - -}); - -$(window).bind('beforeunload', function () { - if(APP.API.isEnabled()) - APP.API.dispose(); -}); - -module.exports = APP; - - -},{"./modules/API/API":1,"./modules/DTMF/DTMF":2,"./modules/RTC/RTC":6,"./modules/UI/UI":8,"./modules/URLProcessor/URLProcessor":35,"./modules/connectionquality/connectionquality":36,"./modules/desktopsharing/desktopsharing":37,"./modules/keyboardshortcut/keyboardshortcut":38,"./modules/members/MemberList":39,"./modules/settings/Settings":40,"./modules/simulcast/simulcast":45,"./modules/statistics/statistics":48,"./modules/translation/translation":49,"./modules/xmpp/xmpp":63}]},{},[107])(107) +},{}]},{},[1])(1) }); \ No newline at end of file diff --git a/modules/UI/UI.js b/modules/UI/UI.js index ba4b91d5c..6b987657d 100644 --- a/modules/UI/UI.js +++ b/modules/UI/UI.js @@ -458,6 +458,9 @@ function onMucMemberLeft(jid) { messageHandler.notify(displayName,'notify.somebody', 'disconnected', 'notify.disconnected'); + if(!config.startAudioMuted || + config.startAudioMuted > APP.members.size()) + UIUtil.playSoundNotification('userLeft'); // Need to call this with a slight delay, otherwise the element couldn't be // found for some reason. // XXX(gp) it works fine without the timeout for me (with Chrome 38). @@ -552,6 +555,9 @@ function onMucMemberJoined(jid, id, displayName) { 'connected', 'notify.connected'); + if(!config.startAudioMuted || + config.startAudioMuted > APP.members.size()) + UIUtil.playSoundNotification('userJoined'); // Add Peer's container VideoLayout.ensurePeerContainerExists(jid,id); } diff --git a/modules/UI/videolayout/VideoLayout.js b/modules/UI/videolayout/VideoLayout.js index 918df36fa..d89da0c15 100644 --- a/modules/UI/videolayout/VideoLayout.js +++ b/modules/UI/videolayout/VideoLayout.js @@ -27,12 +27,6 @@ var eventEmitter = null; */ var focusedVideoInfo = null; -/** - * Indicates if we have muted our audio before the conference has started. - * @type {boolean} - */ -var preMuted = false; - var mutedAudios = {}; var flipXLocalVideo = true; @@ -779,9 +773,6 @@ var VideoLayout = (function (my) { container.id = 'mixedstream'; container.className = 'videocontainer'; remotes.appendChild(container); - if(!config.startAudioMuted || - config.startAudioMuted > APP.members.size()) - UIUtil.playSoundNotification('userJoined'); } if (container) { @@ -1302,9 +1293,6 @@ var VideoLayout = (function (my) { // Remove whole container container.remove(); - if(!config.startAudioMuted || - config.startAudioMuted > APP.members.size()) - UIUtil.playSoundNotification('userLeft'); VideoLayout.resizeThumbnails(); }