| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 | 
							- var EventEmitter = require("events");
 - var RTCUtils = require("./RTCUtils.js");
 - //These lines should be uncommented when require works in app.js
 - //var StreamEventTypes = require("../../service/RTC/StreamEventTypes.js");
 - //var XMPPEvents = require("../service/xmpp/XMPPEvents");
 - 
 - var eventEmitter = new EventEmitter();
 - 
 - var RTC = {
 -     rtcUtils: null,
 -     localStreams: [],
 -     remoteStreams: {},
 -     localAudio: null,
 -     localVideo: null,
 -     addStreamListener: function (listener, eventType) {
 -         eventEmitter.on(eventType, listener);
 -     },
 -     removeStreamListener: function (listener, eventType) {
 -         if(!(eventType instanceof StreamEventTypes))
 -             throw "Illegal argument";
 - 
 -         eventEmitter.removeListener(eventType, listener);
 -     },
 -     createLocalStream: function (stream, type) {
 -         var LocalStream = require("./LocalStream.js");
 -         var localStream =  new LocalStream(stream, type, eventEmitter);
 -         this.localStreams.push(localStream);
 -         if(type == "audio")
 -         {
 -             this.localAudio = localStream;
 -         }
 -         else
 -         {
 -             this.localVideo = localStream;
 -         }
 -         eventEmitter.emit(StreamEventTypes.EVENT_TYPE_LOCAL_CREATED,
 -             localStream);
 -         return localStream;
 -     },
 -     removeLocalStream: function (stream) {
 -         for(var i = 0; i < this.localStreams.length; i++)
 -         {
 -             if(this.localStreams[i].getOriginalStream() === stream) {
 -                 delete this.localStreams[i];
 -                 return;
 -             }
 -         }
 -     },
 -     createRemoteStream: function (data, sid, thessrc) {
 -         var MediaStream = require("./MediaStream.js")
 -         var remoteStream = new MediaStream(data, sid, thessrc, eventEmitter);
 -         var jid = data.peerjid || connection.emuc.myroomjid;
 -         if(!this.remoteStreams[jid]) {
 -             this.remoteStreams[jid] = {};
 -         }
 -         this.remoteStreams[jid][remoteStream.type]= remoteStream;
 -         return remoteStream;
 -     },
 -     getBrowserType: function () {
 -         return this.rtcUtils.browser;
 -     },
 -     getPCConstraints: function () {
 -         return this.rtcUtils.pc_constraints;
 -     },
 -     getUserMediaWithConstraints:function(um, success_callback,
 -                                          failure_callback, resolution,
 -                                          bandwidth, fps, desktopStream)
 -     {
 -         return this.rtcUtils.getUserMediaWithConstraints(um, success_callback,
 -             failure_callback, resolution, bandwidth, fps, desktopStream);
 -     },
 -     attachMediaStream:  function (element, stream) {
 -         this.rtcUtils.attachMediaStream(element, stream);
 -     },
 -     getStreamID:  function (stream) {
 -         return this.rtcUtils.getStreamID(stream);
 -     },
 -     getVideoSrc: function (element) {
 -         return this.rtcUtils.getVideoSrc(element);
 -     },
 -     setVideoSrc: function (element, src) {
 -         this.rtcUtils.setVideoSrc(element, src);
 -     },
 -     dispose: function() {
 -         if (this.rtcUtils) {
 -             this.rtcUtils = null;
 -         }
 -     },
 -     stop:  function () {
 -         this.dispose();
 -     },
 -     start: function () {
 -         this.rtcUtils = new RTCUtils(this);
 -         this.rtcUtils.obtainAudioAndVideoPermissions();
 -     },
 -     onConferenceCreated: function(event) {
 -         var DataChannels = require("./DataChannels");
 -         DataChannels.bindDataChannelListener(event.peerconnection);
 -     },
 -     muteRemoteVideoStream: function (jid, value) {
 -         var stream;
 - 
 -         if(this.remoteStreams[jid] &&
 -             this.remoteStreams[jid][MediaStreamType.VIDEO_TYPE])
 -         {
 -             stream = this.remoteStreams[jid][MediaStreamType.VIDEO_TYPE];
 -         }
 - 
 -         if(!stream)
 -             return false;
 - 
 -         var isMuted = (value === "true");
 -         if (isMuted != stream.muted) {
 -             stream.setMute(isMuted);
 -             return true;
 -         }
 -         return false;
 -     }
 - 
 - };
 - 
 - module.exports = RTC;
 
 
  |