1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- /* global require, APP */
- /**
- * Created by hristo on 8/4/14.
- */
- var RTPStats = require("./RTPStatsCollector.js");
- var EventEmitter = require("events");
- var StreamEventTypes = require("../../service/RTC/StreamEventTypes.js");
- var XMPPEvents = require("../../service/xmpp/XMPPEvents");
- var RTCEvents = require("../../service/RTC/RTCEvents");
- var StatisticsEvents = require("../../service/statistics/Events");
-
- var eventEmitter = new EventEmitter();
-
- var rtpStats = null;
-
- function stopRemote() {
- if (rtpStats) {
- rtpStats.stop();
- eventEmitter.emit(StatisticsEvents.STOP);
- rtpStats = null;
- }
- }
-
- function startRemoteStats (peerconnection) {
- if (rtpStats) {
- rtpStats.stop();
- }
-
- rtpStats = new RTPStats(peerconnection, 200, 2000, eventEmitter);
- rtpStats.start();
- }
-
- function onDisposeConference(onUnload) {
- stopRemote();
- if (onUnload) {
- eventEmitter.removeAllListeners();
- }
- }
-
- export default {
- /**
- * Indicates that this audio level is for local jid.
- * @type {string}
- */
- LOCAL_JID: 'local',
-
- addListener: function(type, listener) {
- eventEmitter.on(type, listener);
- },
- removeListener: function (type, listener) {
- eventEmitter.removeListener(type, listener);
- },
- stop: function () {
- stopRemote();
- if (eventEmitter) {
- eventEmitter.removeAllListeners();
- }
- },
- start: function () {
- const xmpp = APP.conference._room.xmpp;
- xmpp.addListener(
- XMPPEvents.DISPOSE_CONFERENCE,
- onDisposeConference
- );
- //FIXME: we may want to change CALL INCOMING event to
- // onnegotiationneeded
- xmpp.addListener(XMPPEvents.CALL_INCOMING, function (event) {
- startRemoteStats(event.peerconnection);
- });
- }
- };
|