Bladeren bron

Merge pull request #323 from pstros/remove-ui-refs-from-xmpp-upstream

Remove UI refs from xmpp and RTC
j8
hristoterezov 10 jaren geleden
bovenliggende
commit
03902de511

+ 1
- 1
index.html Bestand weergeven

@@ -22,7 +22,7 @@
22 22
     <script src="libs/popover.js?v=1"></script><!-- bootstrap tooltip lib -->
23 23
     <script src="libs/toastr.js?v=1"></script><!-- notifications lib -->
24 24
     <script src="interface_config.js?v=5"></script>
25
-    <script src="libs/app.bundle.js?v=110"></script>
25
+    <script src="libs/app.bundle.js?v=111"></script>
26 26
     <script src="analytics.js?v=1"></script><!-- google analytics plugin -->
27 27
     <link rel="stylesheet" href="css/font.css?v=7"/>
28 28
     <link rel="stylesheet" href="css/toastr.css?v=1">

+ 20846
- 20791
libs/app.bundle.js
Diff onderdrukt omdat het te groot bestand
Bestand weergeven


+ 1
- 8
modules/RTC/DataChannels.js Bestand weergeven

@@ -32,14 +32,7 @@ var DataChannels =
32 32
             // Sends 12 bytes binary message to the bridge
33 33
             //dataChannel.send(new ArrayBuffer(12));
34 34
 
35
-            // when the data channel becomes available, tell the bridge about video
36
-            // selections so that it can do adaptive simulcast,
37
-            // we want the notification to trigger even if userJid is undefined,
38
-            // or null.
39
-            var userJid = APP.UI.getLargeVideoJid();
40
-            // we want the notification to trigger even if userJid is undefined,
41
-            // or null.
42
-            onSelectedEndpointChanged(userJid);
35
+            eventEmitter.emit(RTCEvents.DATA_CHANNEL_OPEN);
43 36
         };
44 37
 
45 38
         dataChannel.onerror = function (error) {

+ 4
- 1
modules/RTC/RTC.js Bestand weergeven

@@ -207,7 +207,10 @@ var RTC = {
207 207
         if(this.localVideo.isMuted() && this.localVideo.videoType !== type)
208 208
         {
209 209
             localCallback = function() {
210
-                APP.xmpp.setVideoMute(false, APP.UI.setVideoMuteButtonsState);
210
+                APP.xmpp.setVideoMute(false, function(mute) {
211
+                    eventEmitter.emit(RTCEvents.VIDEO_MUTE, mute);
212
+                });
213
+                
211 214
                 callback();
212 215
             };
213 216
         }

+ 65
- 2
modules/UI/UI.js Bestand weergeven

@@ -27,6 +27,7 @@ var RTCEvents = require("../../service/RTC/RTCEvents");
27 27
 var RTCBrowserType = require("../RTC/RTCBrowserType");
28 28
 var StreamEventTypes = require("../../service/RTC/StreamEventTypes");
29 29
 var XMPPEvents = require("../../service/xmpp/XMPPEvents");
30
+var UIEvents = require("../../service/UI/UIEvents");
30 31
 var MemberEvents = require("../../service/members/Events");
31 32
 
32 33
 var eventEmitter = new EventEmitter();
@@ -172,7 +173,16 @@ function registerListeners() {
172 173
     APP.RTC.addListener(RTCEvents.AVAILABLE_DEVICES_CHANGED,
173 174
         function (devices) {
174 175
             VideoLayout.setDeviceAvailabilityIcons(null, devices);
175
-        })
176
+        });
177
+    APP.RTC.addListener(RTCEvents.VIDEO_MUTE, UI.setVideoMuteButtonsState);
178
+    APP.RTC.addListener(RTCEvents.DATA_CHANNEL_OPEN, function() {
179
+        // when the data channel becomes available, tell the bridge about video
180
+        // selections so that it can do adaptive simulcast,
181
+        // we want the notification to trigger even if userJid is undefined,
182
+        // or null.
183
+        var userJid = APP.UI.getLargeVideoJid();
184
+        eventEmitter.emit(UIEvents.SELECTED_ENDPOINT, userJid);
185
+    });
176 186
     APP.statistics.addAudioLevelListener(function(jid, audioLevel)
177 187
     {
178 188
         var resourceJid;
@@ -271,11 +281,64 @@ function registerListeners() {
271 281
 
272 282
     APP.xmpp.addListener(XMPPEvents.AUDIO_MUTED, VideoLayout.onAudioMute);
273 283
     APP.xmpp.addListener(XMPPEvents.VIDEO_MUTED, VideoLayout.onVideoMute);
284
+    APP.xmpp.addListener(XMPPEvents.AUDIO_MUTED_BY_FOCUS, function(doMuteAudio) {
285
+        UI.setAudioMuted(doMuteAudio);
286
+    });
274 287
     APP.members.addListener(MemberEvents.DTMF_SUPPORT_CHANGED,
275 288
                             onDtmfSupportChanged);
276
-    APP.xmpp.addListener(XMPPEvents.START_MUTED, function (audio, video) {
289
+    APP.xmpp.addListener(XMPPEvents.START_MUTED_SETTING_CHANGED, function (audio, video) {
277 290
         SettingsMenu.setStartMuted(audio, video);
278 291
     });
292
+    APP.xmpp.addListener(XMPPEvents.START_MUTED_FROM_FOCUS, function (audio, video) {
293
+        UI.setInitialMuteFromFocus(audio, video);
294
+    });
295
+
296
+    APP.xmpp.addListener(XMPPEvents.JINGLE_FATAL_ERROR, function (session, error) {
297
+        UI.messageHandler.showError("dialog.sorry",
298
+            "dialog.internalError");
299
+    });
300
+
301
+    APP.xmpp.addListener(XMPPEvents.SET_LOCAL_DESCRIPTION_ERROR, function() {
302
+        messageHandler.showError("dialog.error",
303
+                                        "dialog.SLDFailure");
304
+    });
305
+    APP.xmpp.addListener(XMPPEvents.SET_REMOTE_DESCRIPTION_ERROR, function() {
306
+        messageHandler.showError("dialog.error",
307
+            "dialog.SRDFailure");
308
+    });
309
+    APP.xmpp.addListener(XMPPEvents.CREATE_ANSWER_ERROR, function() {
310
+        messageHandler.showError();
311
+    });
312
+    APP.xmpp.addListener(XMPPEvents.PROMPT_FOR_LOGIN, function() {
313
+        // FIXME: re-use LoginDialog which supports retries
314
+        UI.showLoginPopup(connect);
315
+    });
316
+    
317
+    APP.xmpp.addListener(XMPPEvents.FOCUS_DISCONNECTED, function(focusComponent, retrySec) {
318
+        UI.messageHandler.notify(
319
+            null, "notify.focus",
320
+            'disconnected', "notify.focusFail",
321
+            {component: focusComponent, ms: retrySec});
322
+    });
323
+    
324
+    APP.xmpp.addListener(XMPPEvents.ROOM_JOIN_ERROR, function(pres) {
325
+        UI.messageHandler.openReportDialog(null,
326
+            "dialog.joinError", pres);
327
+    });
328
+    APP.xmpp.addListener(XMPPEvents.ROOM_CONNECT_ERROR, function(pres) {
329
+        UI.messageHandler.openReportDialog(null,
330
+            "dialog.connectError", pres);
331
+    });
332
+
333
+    APP.xmpp.addListener(XMPPEvents.READY_TO_JOIN, function() {
334
+        var roomName = UI.generateRoomName();
335
+        APP.xmpp.allocateConferenceFocus(roomName, UI.checkForNicknameAndJoin);
336
+    });
337
+    
338
+    //NicknameHandler emits this event
339
+    UI.addListener(UIEvents.NICKNAME_CHANGED, function (nickname) {
340
+        APP.xmpp.addToPresence("displayName", nickname);
341
+    });
279 342
 }
280 343
 
281 344
 

+ 6
- 6
modules/xmpp/JingleSession.js Bestand weergeven

@@ -28,6 +28,7 @@ function JingleSession(me, sid, connection, service, eventEmitter) {
28 28
     this.ice_config = {};
29 29
     this.drip_container = [];
30 30
     this.service = service;
31
+    this.eventEmitter = eventEmitter;
31 32
 
32 33
     this.usetrickle = true;
33 34
     this.usepranswer = false; // early transport warmup -- mind you, this might fail. depends on webrtc issue 1718
@@ -131,7 +132,7 @@ JingleSession.prototype.initiate = function (peerjid, isInitiator) {
131 132
                 this.stopTime = new Date();
132 133
                 break;
133 134
             case 'failed':
134
-                self.eventEmitter(XMPPEvents.CONFERENCE_SETUP_FAILED);
135
+                self.eventEmitter.emit(XMPPEvents.CONFERENCE_SETUP_FAILED);
135 136
                 break;
136 137
         }
137 138
         onIceConnectionStateChange(self.sid, self);
@@ -1283,9 +1284,8 @@ JingleSession.onJingleFatalError = function (session, error)
1283 1284
 {
1284 1285
     this.service.sessionTerminated = true;
1285 1286
     this.connection.emuc.doLeave();
1286
-    APP.UI.messageHandler.showError("dialog.sorry",
1287
-        "dialog.internalError");
1288 1287
     this.eventEmitter.emit(XMPPEvents.CONFERENCE_SETUP_FAILED);
1288
+    this.eventEmitter.emit(XMPPEvents.JINGLE_FATAL_ERROR, session, error);
1289 1289
 }
1290 1290
 
1291 1291
 JingleSession.prototype.setLocalDescription = function () {
@@ -1348,19 +1348,19 @@ function sendKeyframe(pc) {
1348 1348
                         },
1349 1349
                         function (error) {
1350 1350
                             console.log('triggerKeyframe setLocalDescription failed', error);
1351
-                            APP.UI.messageHandler.showError();
1351
+                            eventEmitter.emit(XMPPEvents.SET_LOCAL_DESCRIPTION_ERROR);
1352 1352
                         }
1353 1353
                     );
1354 1354
                 },
1355 1355
                 function (error) {
1356 1356
                     console.log('triggerKeyframe createAnswer failed', error);
1357
-                    APP.UI.messageHandler.showError();
1357
+                    eventEmitter.emit(XMPPEvents.CREATE_ANSWER_ERROR);
1358 1358
                 }
1359 1359
             );
1360 1360
         },
1361 1361
         function (error) {
1362 1362
             console.log('triggerKeyframe setRemoteDescription failed', error);
1363
-            APP.UI.messageHandler.showError();
1363
+            eventEmitter.emit(XMPPEvents.SET_REMOTE_DESCRIPTION_ERROR);
1364 1364
         }
1365 1365
     );
1366 1366
 }

+ 2
- 5
modules/xmpp/moderator.js Bestand weergeven

@@ -1,4 +1,4 @@
1
-/* global $, $iq, APP, config, connection, UI, messageHandler,
1
+/* global $, $iq, APP, config, connection, messageHandler,
2 2
  roomName, sessionTerminated, Strophe, Util */
3 3
 var XMPPEvents = require("../../service/xmpp/XMPPEvents");
4 4
 var Settings = require("../settings/Settings");
@@ -333,10 +333,7 @@ var Moderator = {
333 333
                 // Do not show in case of session invalid
334 334
                 // which means just a retry
335 335
                 if (!invalidSession) {
336
-                    APP.UI.messageHandler.notify(
337
-                        null, "notify.focus",
338
-                        'disconnected', "notify.focusFail",
339
-                        {component: focusComponent, ms: retrySec});
336
+                    eventEmitter.emit(XMPPEvents.FOCUS_DISCONNECTED, focusComponent, retrySec);
340 337
                 }
341 338
                 // Reset response timeout
342 339
                 getNextTimeout(true);

+ 5
- 9
modules/xmpp/strophe.emuc.js Bestand weergeven

@@ -155,7 +155,7 @@ module.exports = function(XMPP, eventEmitter) {
155 155
             var startMuted = $(pres).find('>startmuted');
156 156
             if (startMuted.length)
157 157
             {
158
-                eventEmitter.emit(XMPPEvents.START_MUTED,
158
+                eventEmitter.emit(XMPPEvents.START_MUTED_SETTING_CHANGED,
159 159
                     startMuted.attr("audio") === "true", startMuted.attr("video") === "true");
160 160
             }
161 161
 
@@ -321,19 +321,15 @@ module.exports = function(XMPP, eventEmitter) {
321 321
                     // We're either missing Jicofo/Prosody config for anonymous
322 322
                     // domains or something is wrong.
323 323
 //                    XMPP.promptLogin();
324
-                    APP.UI.messageHandler.openReportDialog(null,
325
-                        "dialog.joinError", pres);
324
+                    eventEmitter.emit(XMPPEvents.ROOM_JOIN_ERROR, pres);
325
+
326 326
                 } else {
327 327
                     console.warn('onPresError ', pres);
328
-                    APP.UI.messageHandler.openReportDialog(null,
329
-                        "dialog.connectError",
330
-                        pres);
328
+                    eventEmitter.emit(XMPPEvents.ROOM_CONNECT_ERROR, pres);
331 329
                 }
332 330
             } else {
333 331
                 console.warn('onPresError ', pres);
334
-                APP.UI.messageHandler.openReportDialog(null,
335
-                    "dialog.connectError",
336
-                    pres);
332
+                eventEmitter.emit(XMPPEvents.ROOM_CONNECT_ERROR, pres);
337 333
             }
338 334
             return true;
339 335
         },

+ 2
- 2
modules/xmpp/strophe.jingle.js Bestand weergeven

@@ -119,8 +119,8 @@ module.exports = function(XMPP, eventEmitter)
119 119
                     {
120 120
                         var audioMuted = startMuted.attr("audio");
121 121
                         var videoMuted = startMuted.attr("video");
122
-                        APP.UI.setInitialMuteFromFocus((audioMuted === "true"),
123
-                            (videoMuted === "true"));
122
+                        eventEmitter.emit(XMPPEvents.START_MUTED_FROM_FOCUS,
123
+                                autioMuted === "true", videoMuted === "true");
124 124
                     }
125 125
                     sess = new JingleSession(
126 126
                         $(iq).attr('to'), $(iq).find('jingle').attr('sid'),

+ 4
- 2
modules/xmpp/strophe.moderate.js Bestand weergeven

@@ -3,7 +3,9 @@
3 3
 /**
4 4
  * Moderate connection plugin.
5 5
  */
6
-module.exports = function (XMPP) {
6
+var XMPPEvents = require("../../service/xmpp/XMPPEvents");
7
+
8
+module.exports = function (XMPP, eventEmitter) {
7 9
     Strophe.addConnectionPlugin('moderate', {
8 10
         connection: null,
9 11
         init: function (conn) {
@@ -44,7 +46,7 @@ module.exports = function (XMPP) {
44 46
             var mute = $(iq).find('mute');
45 47
             if (mute.length) {
46 48
                 var doMuteAudio = mute.text() === "true";
47
-                APP.UI.setAudioMuted(doMuteAudio);
49
+                eventEmitter.emit(XMPPEvents.AUDIO_MUTED_BY_FOCUS, doMuteAudio);
48 50
                 XMPP.forceMuted = doMuteAudio;
49 51
             }
50 52
             return true;

+ 6
- 17
modules/xmpp/xmpp.js Bestand weergeven

@@ -7,7 +7,6 @@ var Settings = require("../settings/Settings");
7 7
 var Pako = require("pako");
8 8
 var StreamEventTypes = require("../../service/RTC/StreamEventTypes");
9 9
 var RTCEvents = require("../../service/RTC/RTCEvents");
10
-var UIEvents = require("../../service/UI/UIEvents");
11 10
 var XMPPEvents = require("../../service/xmpp/XMPPEvents");
12 11
 var retry = require('retry');
13 12
 
@@ -163,17 +162,14 @@ function maybeDoJoin() {
163 162
 }
164 163
 
165 164
 function doJoin() {
166
-    var roomName = APP.UI.generateRoomName();
167
-
168
-    Moderator.allocateConferenceFocus(
169
-        roomName, APP.UI.checkForNicknameAndJoin);
165
+    eventEmitter.emit(XMPPEvents.READY_TO_JOIN);
170 166
 }
171 167
 
172 168
 function initStrophePlugins()
173 169
 {
174 170
     require("./strophe.emuc")(XMPP, eventEmitter);
175 171
     require("./strophe.jingle")(XMPP, eventEmitter);
176
-    require("./strophe.moderate")(XMPP);
172
+    require("./strophe.moderate")(XMPP, eventEmitter);
177 173
     require("./strophe.util")();
178 174
     require("./strophe.rayo")();
179 175
     require("./strophe.logger")();
@@ -184,9 +180,6 @@ function registerListeners() {
184 180
         StreamEventTypes.EVENT_TYPE_LOCAL_CREATED);
185 181
     APP.RTC.addListener(RTCEvents.AVAILABLE_DEVICES_CHANGED, function (devices) {
186 182
         XMPP.addToPresence("devices", devices);
187
-    })
188
-    APP.UI.addListener(UIEvents.NICKNAME_CHANGED, function (nickname) {
189
-        XMPP.addToPresence("displayName", nickname);
190 183
     });
191 184
 }
192 185
 
@@ -279,8 +272,7 @@ var XMPP = {
279 272
         return Strophe.getStatusString(status);
280 273
     },
281 274
     promptLogin: function () {
282
-        // FIXME: re-use LoginDialog which supports retries
283
-        APP.UI.showLoginPopup(connect);
275
+        eventEmitter.emit(XMPPEvents.PROMPT_FOR_LOGIN);
284 276
     },
285 277
     joinRoom: function(roomName, useNicks, nick)
286 278
     {
@@ -459,22 +451,19 @@ var XMPP = {
459 451
                             },
460 452
                             function (error) {
461 453
                                 console.log('mute SLD error');
462
-                                APP.UI.messageHandler.showError("dialog.error",
463
-                                    "dialog.SLDFailure");
454
+                                eventEmitter.emit(XMPPEvents.SET_LOCAL_DESCRIPTION_ERROR);
464 455
                             }
465 456
                         );
466 457
                     },
467 458
                     function (error) {
468 459
                         console.log(error);
469
-                        APP.UI.messageHandler.showError();
460
+                        eventEmitter.emit(XMPPEvents.CREATE_ANSWER_ERROR);
470 461
                     }
471 462
                 );
472 463
             },
473 464
             function (error) {
474 465
                 console.log('muteVideo SRD error');
475
-                APP.UI.messageHandler.showError("dialog.error",
476
-                    "dialog.SRDFailure");
477
-
466
+                eventEmitter.emit(XMPPEvents.SET_REMOTE_DESCRIPTION_ERROR);
478 467
             }
479 468
         );
480 469
     },

+ 1
- 0
service/RTC/RTCEvents.js Bestand weergeven

@@ -1,5 +1,6 @@
1 1
 var RTCEvents = {
2 2
     RTC_READY: "rtc.ready",
3
+    DATA_CHANNEL_OPEN: "rtc.data_channel_open",
3 4
     LASTN_CHANGED: "rtc.lastn_changed",
4 5
     DOMINANTSPEAKER_CHANGED: "rtc.dominantspeaker_changed",
5 6
     LASTN_ENDPOINT_CHANGED: "rtc.lastn_endpoint_changed",

+ 14
- 2
service/xmpp/XMPPEvents.js Bestand weergeven

@@ -28,10 +28,22 @@ var XMPPEvents = {
28 28
     CHAT_ERROR_RECEIVED: "xmpp.chat_error_received",
29 29
     ETHERPAD: "xmpp.etherpad",
30 30
     DEVICE_AVAILABLE: "xmpp.device_available",
31
-    START_MUTED: "xmpp.start_muted",
32 31
     PEERCONNECTION_READY: "xmpp.peerconnection_ready",
33 32
     CONFERENCE_SETUP_FAILED: "xmpp.conference_setup_failed",
34 33
     AUDIO_MUTED: "xmpp.audio_muted",
35
-    VIDEO_MUTED: "xmpp.video_muted"
34
+    VIDEO_MUTED: "xmpp.video_muted",
35
+    AUDIO_MUTED_BY_FOCUS: "xmpp.audio_muted_by_focus",
36
+    START_MUTED_SETTING_CHANGED: "xmpp.start_muted_setting_changed",
37
+    START_MUTED_FROM_FOCUS: "xmpp.start_muted_from_focus",
38
+    SET_LOCAL_DESCRIPTION_ERROR: 'xmpp.set_local_description_error',
39
+    SET_REMOTE_DESCRIPTION_ERROR: 'xmpp.set_remote_description_error',
40
+    CREATE_ANSWER_ERROR: 'xmpp.create_answer_error',
41
+    JINGLE_FATAL_ERROR: 'xmpp.jingle_fatal_error',
42
+    PROMPT_FOR_LOGIN: 'xmpp.prompt_for_login',
43
+    FOCUS_DISCONNECTED: 'xmpp.focus_disconnected',
44
+    ROOM_JOIN_ERROR: 'xmpp.room_join_error',
45
+    ROOM_CONNECT_ERROR: 'xmpp.room_connect_error',
46
+    // xmpp is connected and obtained user media
47
+    READY_TO_JOIN: 'xmpp.ready_to_join'
36 48
 };
37 49
 module.exports = XMPPEvents;

Laden…
Annuleren
Opslaan