|
@@ -1,5 +1,6 @@
|
1
|
1
|
const logger = require("jitsi-meet-logger").getLogger(__filename);
|
2
|
2
|
import postisInit from "postis";
|
|
3
|
+import EventEmitter from "events";
|
3
|
4
|
|
4
|
5
|
/**
|
5
|
6
|
* The minimum width for the Jitsi Meet frame
|
|
@@ -99,7 +100,7 @@ function configToURLParamsArray(config) {
|
99
|
100
|
/**
|
100
|
101
|
* The IFrame API interface class.
|
101
|
102
|
*/
|
102
|
|
-class JitsiMeetExternalAPI {
|
|
103
|
+class JitsiMeetExternalAPI extends EventEmitter {
|
103
|
104
|
/**
|
104
|
105
|
* Constructs new API instance. Creates iframe element that loads
|
105
|
106
|
* Jitsi Meet.
|
|
@@ -119,6 +120,8 @@ class JitsiMeetExternalAPI {
|
119
|
120
|
*/
|
120
|
121
|
constructor(domain, room_name, width, height, parentNode,
|
121
|
122
|
configOverwrite, interfaceConfigOverwrite, noSsl, jwt) {
|
|
123
|
+ super();
|
|
124
|
+
|
122
|
125
|
if (!width || width < MIN_WIDTH) {
|
123
|
126
|
width = MIN_WIDTH;
|
124
|
127
|
}
|
|
@@ -283,6 +286,8 @@ class JitsiMeetExternalAPI {
|
283
|
286
|
* readyToClose - all hangup operations are completed and Jitsi Meet is
|
284
|
287
|
* ready to be disposed.
|
285
|
288
|
* @param object
|
|
289
|
+ *
|
|
290
|
+ * NOTE: This method is not removed for backward comatability purposes.
|
286
|
291
|
*/
|
287
|
292
|
addEventListeners(object) {
|
288
|
293
|
for (var i in object) {
|
|
@@ -336,41 +341,26 @@ class JitsiMeetExternalAPI {
|
336
|
341
|
* }}
|
337
|
342
|
* @param event the name of the event
|
338
|
343
|
* @param listener the listener
|
|
344
|
+ *
|
|
345
|
+ * NOTE: This method is not removed for backward comatability purposes.
|
339
|
346
|
*/
|
340
|
347
|
addEventListener(event, listener) {
|
341
|
|
- if (!(event in events)) {
|
342
|
|
- logger.error("Not supported event name.");
|
343
|
|
- return;
|
344
|
|
- }
|
345
|
|
- // We cannot remove listeners from postis that's why we are handling the
|
346
|
|
- // callback that way.
|
347
|
|
- if (!this.postisListeners[event]) {
|
348
|
|
- this.postis.listen(events[event], data => {
|
349
|
|
- if((event in this.eventHandlers) &&
|
350
|
|
- typeof this.eventHandlers[event] === "function")
|
351
|
|
- this.eventHandlers[event].call(null, data);
|
352
|
|
- });
|
353
|
|
- this.postisListeners[event] = true;
|
354
|
|
- }
|
355
|
|
- this.eventHandlers[event] = listener;
|
|
348
|
+ this.on(event, listener);
|
356
|
349
|
}
|
357
|
350
|
|
358
|
351
|
/**
|
359
|
352
|
* Removes event listener.
|
360
|
353
|
* @param event the name of the event.
|
|
354
|
+ * NOTE: This method is not removed for backward comatability purposes.
|
361
|
355
|
*/
|
362
|
356
|
removeEventListener(event) {
|
363
|
|
- if(!(event in this.eventHandlers))
|
364
|
|
- {
|
365
|
|
- logger.error("The event " + event + " is not registered.");
|
366
|
|
- return;
|
367
|
|
- }
|
368
|
|
- delete this.eventHandlers[event];
|
|
357
|
+ this.removeListeners(event);
|
369
|
358
|
}
|
370
|
359
|
|
371
|
360
|
/**
|
372
|
361
|
* Removes event listeners.
|
373
|
362
|
* @param events array with the names of the events.
|
|
363
|
+ * NOTE: This method is not removed for backward comatability purposes.
|
374
|
364
|
*/
|
375
|
365
|
removeEventListeners(events) {
|
376
|
366
|
for(var i = 0; i < events.length; i++) {
|
|
@@ -395,6 +385,12 @@ class JitsiMeetExternalAPI {
|
395
|
385
|
changeParticipantNumber.bind(null, this, 1));
|
396
|
386
|
this.postis.listen("participant-left",
|
397
|
387
|
changeParticipantNumber.bind(null, this, -1));
|
|
388
|
+
|
|
389
|
+ for (const eventName in events) {
|
|
390
|
+ const postisMethod = events[eventName];
|
|
391
|
+ this.postis.listen(postisMethod,
|
|
392
|
+ (...args) => this.emit(eventName, ...args));
|
|
393
|
+ }
|
398
|
394
|
}
|
399
|
395
|
|
400
|
396
|
/**
|