소스 검색

feat(transcription): Add transcription status

master
hristoterezov 7 년 전
부모
커밋
4c6bf3f31c
7개의 변경된 파일68개의 추가작업 그리고 1개의 파일을 삭제
  1. 9
    0
      JitsiConference.js
  2. 3
    0
      JitsiConferenceEventManager.js
  3. 10
    0
      JitsiConferenceEvents.js
  4. 3
    1
      JitsiMeetJS.js
  5. 13
    0
      JitsiTranscriptionStatus.js
  6. 22
    0
      modules/xmpp/ChatRoom.js
  7. 8
    0
      service/xmpp/XMPPEvents.js

+ 9
- 0
JitsiConference.js 파일 보기

@@ -630,6 +630,15 @@ JitsiConference.prototype.getTranscriber = function() {
630 630
     return this.transcriber;
631 631
 };
632 632
 
633
+/**
634
+ * Returns the transcription status.
635
+ *
636
+ * @returns {String} "on" or "off".
637
+ */
638
+JitsiConference.prototype.getTranscriptionStatus = function() {
639
+    return this.room.transcriptionStatus;
640
+};
641
+
633 642
 /**
634 643
  * Adds JitsiLocalTrack object to the conference.
635 644
  * @param track the JitsiLocalTrack object.

+ 3
- 0
JitsiConferenceEventManager.js 파일 보기

@@ -191,6 +191,9 @@ JitsiConferenceEventManager.prototype.setupChatRoomListeners = function() {
191 191
     this.chatRoomForwarder.forward(XMPPEvents.RECORDER_STATE_CHANGED,
192 192
         JitsiConferenceEvents.RECORDER_STATE_CHANGED);
193 193
 
194
+    this.chatRoomForwarder.forward(XMPPEvents.TRANSCRIPTION_STATUS_CHANGED,
195
+        JitsiConferenceEvents.TRANSCRIPTION_STATUS_CHANGED);
196
+
194 197
     this.chatRoomForwarder.forward(XMPPEvents.VIDEO_SIP_GW_AVAILABILITY_CHANGED,
195 198
         JitsiConferenceEvents.VIDEO_SIP_GW_AVAILABILITY_CHANGED);
196 199
 

+ 10
- 0
JitsiConferenceEvents.js 파일 보기

@@ -229,6 +229,16 @@ export const TRACK_MUTE_CHANGED = 'conference.trackMuteChanged';
229 229
  */
230 230
 export const TRACK_REMOVED = 'conference.trackRemoved';
231 231
 
232
+/**
233
+ * Notifies for transcription status changes. The event provides the
234
+ * following parameters to its listeners:
235
+ *
236
+ * @param {String} status - The new status.
237
+ */
238
+export const TRANSCRIPTION_STATUS_CHANGED
239
+    = 'conference.transcriptionStatusChanged';
240
+
241
+
232 242
 /**
233 243
  * A new user joinned the conference.
234 244
  */

+ 3
- 1
JitsiMeetJS.js 파일 보기

@@ -15,6 +15,7 @@ import JitsiRecorderErrors from './JitsiRecorderErrors';
15 15
 import JitsiTrackError from './JitsiTrackError';
16 16
 import * as JitsiTrackErrors from './JitsiTrackErrors';
17 17
 import * as JitsiTrackEvents from './JitsiTrackEvents';
18
+import * as JitsiTranscriptionStatus from './JitsiTranscriptionStatus';
18 19
 import LocalStatsCollector from './modules/statistics/LocalStatsCollector';
19 20
 import Recording from './modules/xmpp/recording';
20 21
 import Logger from 'jitsi-meet-logger';
@@ -97,7 +98,8 @@ export default {
97 98
         participantConnectionStatus: ParticipantConnectionStatus,
98 99
         recordingStatus: Recording.status,
99 100
         recordingTypes: Recording.types,
100
-        sipVideoGW: VideoSIPGWConstants
101
+        sipVideoGW: VideoSIPGWConstants,
102
+        transcriptionStatus: JitsiTranscriptionStatus
101 103
     },
102 104
     events: {
103 105
         conference: JitsiConferenceEvents,

+ 13
- 0
JitsiTranscriptionStatus.js 파일 보기

@@ -0,0 +1,13 @@
1
+/**
2
+ * The transciption is on.
3
+ *
4
+ * @type {String}
5
+ */
6
+export const ON = 'on';
7
+
8
+/**
9
+ * The transciption is off.
10
+ *
11
+ * @type {String}
12
+ */
13
+export const OFF = 'off';

+ 22
- 0
modules/xmpp/ChatRoom.js 파일 보기

@@ -1,6 +1,7 @@
1 1
 /* global $, $pres, $iq, $msg, __filename, Strophe */
2 2
 import { getLogger } from 'jitsi-meet-logger';
3 3
 import GlobalOnErrorHandler from '../util/GlobalOnErrorHandler';
4
+import * as JitsiTranscriptionStatus from '../../JitsiTranscriptionStatus';
4 5
 import Listenable from '../util/Listenable';
5 6
 import * as MediaType from '../../service/RTC/MediaType';
6 7
 import Moderator from './moderator';
@@ -175,6 +176,7 @@ export default class ChatRoom extends Listenable {
175 176
         this.participantPropertyListener = null;
176 177
 
177 178
         this.locked = false;
179
+        this.transcriptionStatus = JitsiTranscriptionStatus.OFF;
178 180
     }
179 181
 
180 182
     /* eslint-enable max-params */
@@ -540,6 +542,26 @@ export default class ChatRoom extends Listenable {
540 542
             case 'jibri-recording-status':
541 543
                 jibri = node;
542 544
                 break;
545
+            case 'transcription-status': {
546
+                const { attributes } = node;
547
+
548
+                if (!attributes) {
549
+                    break;
550
+                }
551
+
552
+                const { status } = attributes;
553
+
554
+                if (status && status !== this.transcriptionStatus) {
555
+                    this.transcriptionStatus = status;
556
+                    this.eventEmitter.emit(
557
+                        XMPPEvents.TRANSCRIPTION_STATUS_CHANGED,
558
+                        status
559
+                    );
560
+                }
561
+
562
+
563
+                break;
564
+            }
543 565
             case 'call-control': {
544 566
                 const att = node.attributes;
545 567
 

+ 8
- 0
service/xmpp/XMPPEvents.js 파일 보기

@@ -195,6 +195,14 @@ const XMPPEvents = {
195 195
     // suspending detected
196 196
     SUSPEND_DETECTED: 'xmpp.suspend_detected',
197 197
 
198
+    /**
199
+     * Notifies for transcription status changes. The event provides the
200
+     * following parameters to its listeners:
201
+     *
202
+     * @param {String} status - The new status.
203
+     */
204
+    TRANSCRIPTION_STATUS_CHANGED: 'xmpp.transcription_status_changed',
205
+
198 206
     /**
199 207
      * Event fired when 'transport-info' with new ICE candidates is received.
200 208
      */

Loading…
취소
저장