diff --git a/public/js/simplewebrtc.bundle.js b/public/js/simplewebrtc.bundle.js index f37a285..6d1baa7 100644 --- a/public/js/simplewebrtc.bundle.js +++ b/public/js/simplewebrtc.bundle.js @@ -78,7 +78,8 @@ function SimpleWebRTC(opts) { id: message.from, type: message.roomType, enableDataChannels: self.config.enableDataChannels && message.roomType !== 'screen', - sharemyscreen: message.roomType === 'screen' && !message.broadcaster + sharemyscreen: message.roomType === 'screen' && !message.broadcaster, + broadcaster: message.roomType === 'screen' && !message.broadcaster ? self.connection.socket.sessionid : null }); } peer.handleMessage(message); @@ -4601,6 +4602,44 @@ window.addEventListener('message', function (event) { }); },{"getusermedia":9}],10:[function(require,module,exports){ +// created by @HenrikJoreteg +var prefix; +var isChrome = false; +var isFirefox = false; +var ua = navigator.userAgent.toLowerCase(); + +// basic sniffing +if (ua.indexOf('firefox') !== -1) { + prefix = 'moz'; + isFirefox = true; +} else if (ua.indexOf('chrome') !== -1) { + prefix = 'webkit'; + isChrome = true; +} + +var PC = window.mozRTCPeerConnection || window.webkitRTCPeerConnection; +var IceCandidate = window.mozRTCIceCandidate || window.RTCIceCandidate; +var SessionDescription = window.mozRTCSessionDescription || window.RTCSessionDescription; +var MediaStream = window.webkitMediaStream || window.MediaStream; +var screenSharing = navigator.userAgent.match('Chrome') && parseInt(navigator.userAgent.match(/Chrome\/(.*) /)[1], 10) >= 26; +var AudioContext = window.webkitAudioContext || window.AudioContext; + + +// export support flags and constructors.prototype && PC +module.exports = { + support: !!PC, + dataChannel: isChrome || isFirefox || (PC && PC.prototype && PC.prototype.createDataChannel), + prefix: prefix, + webAudio: !!(AudioContext && AudioContext.prototype.createMediaStreamSource), + mediaStream: !!(MediaStream && MediaStream.prototype.removeTrack), + screenSharing: !!screenSharing, + AudioContext: AudioContext, + PeerConnection: PC, + SessionDescription: SessionDescription, + IceCandidate: IceCandidate +}; + +},{}],11:[function(require,module,exports){ // getUserMedia helper by @HenrikJoreteg var func = (navigator.getUserMedia || navigator.webkitGetUserMedia || @@ -4664,44 +4703,6 @@ module.exports = function (constraints, cb) { }); }; -},{}],11:[function(require,module,exports){ -// created by @HenrikJoreteg -var prefix; -var isChrome = false; -var isFirefox = false; -var ua = navigator.userAgent.toLowerCase(); - -// basic sniffing -if (ua.indexOf('firefox') !== -1) { - prefix = 'moz'; - isFirefox = true; -} else if (ua.indexOf('chrome') !== -1) { - prefix = 'webkit'; - isChrome = true; -} - -var PC = window.mozRTCPeerConnection || window.webkitRTCPeerConnection; -var IceCandidate = window.mozRTCIceCandidate || window.RTCIceCandidate; -var SessionDescription = window.mozRTCSessionDescription || window.RTCSessionDescription; -var MediaStream = window.webkitMediaStream || window.MediaStream; -var screenSharing = navigator.userAgent.match('Chrome') && parseInt(navigator.userAgent.match(/Chrome\/(.*) /)[1], 10) >= 26; -var AudioContext = window.webkitAudioContext || window.AudioContext; - - -// export support flags and constructors.prototype && PC -module.exports = { - support: !!PC, - dataChannel: isChrome || isFirefox || (PC && PC.prototype && PC.prototype.createDataChannel), - prefix: prefix, - webAudio: !!(AudioContext && AudioContext.prototype.createMediaStreamSource), - mediaStream: !!(MediaStream && MediaStream.prototype.removeTrack), - screenSharing: !!screenSharing, - AudioContext: AudioContext, - PeerConnection: PC, - SessionDescription: SessionDescription, - IceCandidate: IceCandidate -}; - },{}],9:[function(require,module,exports){ // getUserMedia helper by @HenrikJoreteg var func = (window.navigator.getUserMedia || @@ -4924,27 +4925,27 @@ WebRTC.prototype.setupAudioMonitor = function (stream) { var timeout; audio.on('speaking', function () { + self.emit('speaking'); if (self.hardMuted) return; self.setMicIfEnabled(1); self.sendToAll('speaking', {}); - self.emit('speaking'); }); audio.on('stopped_speaking', function () { - if (self.hardMuted) return; if (timeout) clearTimeout(timeout); timeout = setTimeout(function () { + self.emit('stoppedSpeaking'); + if (self.hardMuted) return; self.setMicIfEnabled(0.5); self.sendToAll('stopped_speaking', {}); - self.emit('stoppedSpeaking'); }, 1000); }); if (this.config.enableDataChannels) { // until https://code.google.com/p/chromium/issues/detail?id=121673 is fixed... audio.on('volume_change', function (volume, treshold) { - if (self.hardMuted) return; self.emit('volumeChange', volume, treshold); + if (self.hardMuted) return; // FIXME: should use sendDirectlyToAll, but currently has different semantics wrt payload self.peers.forEach(function (peer) { if (peer.enableDataChannels) { @@ -5227,7 +5228,7 @@ Peer.prototype.handleDataChannelAdded = function (channel) { module.exports = WebRTC; -},{"getusermedia":10,"hark":13,"mediastream-gain":14,"mockconsole":7,"rtcpeerconnection":12,"webrtcsupport":11,"wildemitter":3}],15:[function(require,module,exports){ +},{"getusermedia":11,"hark":13,"mediastream-gain":14,"mockconsole":7,"rtcpeerconnection":12,"webrtcsupport":10,"wildemitter":3}],15:[function(require,module,exports){ var events = require('events'); exports.isArray = isArray; @@ -7423,7 +7424,7 @@ PeerConnection.prototype.createDataChannel = function (name, opts) { module.exports = PeerConnection; -},{"sdp-jingle-json":20,"traceablepeerconnection":19,"underscore":17,"util":15,"webrtcsupport":11,"wildemitter":18}],14:[function(require,module,exports){ +},{"sdp-jingle-json":20,"traceablepeerconnection":19,"underscore":17,"util":15,"webrtcsupport":10,"wildemitter":18}],14:[function(require,module,exports){ var support = require('webrtcsupport'); @@ -7470,7 +7471,7 @@ GainController.prototype.on = function () { module.exports = GainController; -},{"webrtcsupport":11}],21:[function(require,module,exports){ +},{"webrtcsupport":10}],21:[function(require,module,exports){ // shim for using process in browser var process = module.exports = {}; @@ -8226,7 +8227,7 @@ TraceablePeerConnection.prototype.getStats = function (callback, errback) { module.exports = TraceablePeerConnection; -},{"util":15,"webrtcsupport":11,"wildemitter":18}],23:[function(require,module,exports){ +},{"util":15,"webrtcsupport":10,"wildemitter":18}],23:[function(require,module,exports){ var parsers = require('./parsers'); var idCounter = Math.random();