diff --git a/src/liowebrtc.js b/src/liowebrtc.js index 95a6322ce5b7117484dd291f5217a321eacfb611..bb9c244fe9f0ef5e277a393ab6c8edc2e810bae7 100644 --- a/src/liowebrtc.js +++ b/src/liowebrtc.js @@ -19,6 +19,7 @@ class LioWebRTC extends WildEmitter { remoteVideosEl: '', enableDataChannels: true, autoRequestMedia: false, + dataOnly: false, autoRemoveVideos: true, adjustPeerVolume: true, peerVolumeWhenSpeaking: 0.25, @@ -120,8 +121,8 @@ class LioWebRTC extends WildEmitter { opts.debug = false; this.webrtc = new WebRTC(opts); - // attach a few methods from underlying lib to simple. - ['mute', 'unmute', 'pauseVideo', 'resumeVideo', 'pause', 'resume', 'sendToAll', 'sendDirectlyToAll', 'getPeers'].forEach((method) => { + // attach a few methods from underlying lib to liowebrtc. + ['mute', 'unmute', 'pauseVideo', 'resumeVideo', 'pause', 'resume', 'sendToAll', 'sendDirectlyToAll', 'getPeers', 'shout', 'whisper'].forEach((method) => { self[method] = self.webrtc[method].bind(self.webrtc); }); @@ -239,7 +240,7 @@ class LioWebRTC extends WildEmitter { if (data.type === 'volume') { self.emit('remoteVolumeChange', data.payload, peer); } else { - self.emit(data.type, data.payload, peer); + self.emit('receivedPeerData', data.type, data.payload, peer); } }); @@ -320,8 +321,8 @@ class LioWebRTC extends WildEmitter { type, enableDataChannels: self.config.enableDataChannels && type !== 'screen', receiveMedia: { - offerToReceiveAudio: type !== 'screen' && self.config.receiveMedia.offerToReceiveAudio ? 1 : 0, - offerToReceiveVideo: self.config.receiveMedia.offerToReceiveVideo + offerToReceiveAudio: type !== 'screen' && !self.config.dataOnly && self.config.receiveMedia.offerToReceiveAudio ? 1 : 0, + offerToReceiveVideo: !self.config.dataOnly && self.config.receiveMedia.offerToReceiveVideo } }); self.emit('createdPeer', peer); diff --git a/src/webrtc.js b/src/webrtc.js index 125ddd780351aea51d6ecaa2d050fbae877051e9..c34d4e85fb307937cf8869e7ca37e17eb6b66dc9 100644 --- a/src/webrtc.js +++ b/src/webrtc.js @@ -140,6 +140,14 @@ class WebRTC { } }); } + + shout(messageLabel, payload) { + sendDirectlyToAll(messageLabel, payload, 'liowebrtc'); + } + + whisper(peer, messageLabel, payload) { + peer.sendDirectly(messageLabel, payload); + } } util.inherits(WebRTC, localMedia);