modified lib-jitsi-meet dev repo
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Jvb121EventGenerator.js 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import { getLogger } from '@jitsi/logger';
  2. import * as JitsiConferenceEvents from '../../JitsiConferenceEvents';
  3. const logger = getLogger(__filename);
  4. /**
  5. * Emits {@link JitsiConferenceEvents.JVB121_STATUS} events based on the current
  6. * P2P status and the conference participants count. See the event description
  7. * for more info.
  8. */
  9. export default class Jvb121EventGenerator {
  10. /**
  11. * Creates new <tt>Jvb121EventGenerator</tt> for the given conference.
  12. * @param {JitsiConference} conference
  13. */
  14. constructor(conference) {
  15. this._conference = conference;
  16. /**
  17. * Indicates whether it's a one to one JVB conference (<tt>true</tt>)
  18. * or a multiparty (<tt>false</tt>). Will be also <tt>false</tt> if
  19. * the conference is currently in the P2P mode.
  20. * @type {boolean}
  21. * @private
  22. */
  23. this._jvb121 = true;
  24. this._conference.addEventListener(
  25. JitsiConferenceEvents.USER_JOINED, () => this.evaluateStatus());
  26. this._conference.addEventListener(
  27. JitsiConferenceEvents.USER_LEFT, () => this.evaluateStatus());
  28. this._conference.addEventListener(
  29. JitsiConferenceEvents.P2P_STATUS, () => this.evaluateStatus());
  30. }
  31. /**
  32. * Checks whether the JVB121 value should be updated and a new event
  33. * emitted.
  34. */
  35. evaluateStatus() {
  36. const oldStatus = this._jvb121;
  37. const newStatus
  38. = !this._conference.isP2PActive()
  39. && this._conference.getParticipantCount() <= 2;
  40. if (oldStatus !== newStatus) {
  41. this._jvb121 = newStatus;
  42. logger.debug(`JVB121 status ${oldStatus} => ${newStatus}`);
  43. this._conference.eventEmitter.emit(
  44. JitsiConferenceEvents.JVB121_STATUS, oldStatus, newStatus);
  45. }
  46. }
  47. }