浏览代码

ref(remotecontrol): Moves hangup logic to remote control module

j8
hristoterezov 8 年前
父节点
当前提交
bd98d661d3
共有 3 个文件被更改,包括 42 次插入3 次删除
  1. 4
    0
      ConferenceEvents.js
  2. 24
    3
      conference.js
  3. 14
    0
      modules/remotecontrol/Receiver.js

+ 4
- 0
ConferenceEvents.js 查看文件

1
+/**
2
+ * Notifies interested parties that hangup procedure will start.
3
+ */
4
+export const BEFORE_HANGUP = "conference.before_hangup";

+ 24
- 3
conference.js 查看文件

14
 
14
 
15
 import UIEvents from './service/UI/UIEvents';
15
 import UIEvents from './service/UI/UIEvents';
16
 import UIUtil from './modules/UI/util/UIUtil';
16
 import UIUtil from './modules/UI/util/UIUtil';
17
+import * as JitsiMeetConferenceEvents from './ConferenceEvents';
17
 
18
 
18
 import analytics from './modules/analytics/analytics';
19
 import analytics from './modules/analytics/analytics';
19
 
20
 
20
-// For remote control testing:
21
-// import remoteControlReceiver from './modules/remotecontrol/Receiver';
21
+import EventEmitter from "events";
22
 
22
 
23
 const ConnectionEvents = JitsiMeetJS.events.connection;
23
 const ConnectionEvents = JitsiMeetJS.events.connection;
24
 const ConnectionErrors = JitsiMeetJS.errors.connection;
24
 const ConnectionErrors = JitsiMeetJS.errors.connection;
31
 
31
 
32
 const ConnectionQualityEvents = JitsiMeetJS.events.connectionQuality;
32
 const ConnectionQualityEvents = JitsiMeetJS.events.connectionQuality;
33
 
33
 
34
+const eventEmitter = new EventEmitter();
35
+
34
 let room, connection, localAudio, localVideo;
36
 let room, connection, localAudio, localVideo;
35
 
37
 
36
 /**
38
 /**
1783
      * requested
1785
      * requested
1784
      */
1786
      */
1785
     hangup (requestFeedback = false) {
1787
     hangup (requestFeedback = false) {
1788
+        eventEmitter.emit(JitsiMeetConferenceEvents.BEFORE_HANGUP);
1786
         APP.UI.hideRingOverLay();
1789
         APP.UI.hideRingOverLay();
1787
-        APP.remoteControl.receiver.enable(false);
1788
         let requestFeedbackPromise = requestFeedback
1790
         let requestFeedbackPromise = requestFeedback
1789
                 ? APP.UI.requestFeedbackOnHangup()
1791
                 ? APP.UI.requestFeedbackOnHangup()
1790
                 // false - because the thank you dialog shouldn't be displayed
1792
                 // false - because the thank you dialog shouldn't be displayed
1846
      */
1848
      */
1847
     sendEndpointMessage (to, payload) {
1849
     sendEndpointMessage (to, payload) {
1848
         room.sendEndpointMessage(to, payload);
1850
         room.sendEndpointMessage(to, payload);
1851
+    },
1852
+
1853
+    /**
1854
+     * Adds new listener.
1855
+     * @param {String} eventName the name of the event
1856
+     * @param {Function} listener the listener.
1857
+     */
1858
+    addListener (eventName, listener) {
1859
+        eventEmitter.addListener(eventName, listener);
1860
+    },
1861
+
1862
+    /**
1863
+     * Removes listener.
1864
+     * @param {String} eventName the name of the event that triggers the
1865
+     * listener
1866
+     * @param {Function} listener the listener.
1867
+     */
1868
+    removeListener (eventName, listener) {
1869
+        eventEmitter.removeListener(eventName, listener);
1849
     }
1870
     }
1850
 };
1871
 };

+ 14
- 0
modules/remotecontrol/Receiver.js 查看文件

3
 import {DISCO_REMOTE_CONTROL_FEATURE, REMOTE_CONTROL_EVENT_TYPE, EVENT_TYPES,
3
 import {DISCO_REMOTE_CONTROL_FEATURE, REMOTE_CONTROL_EVENT_TYPE, EVENT_TYPES,
4
     PERMISSIONS_ACTIONS} from "../../service/remotecontrol/Constants";
4
     PERMISSIONS_ACTIONS} from "../../service/remotecontrol/Constants";
5
 import RemoteControlParticipant from "./RemoteControlParticipant";
5
 import RemoteControlParticipant from "./RemoteControlParticipant";
6
+import * as JitsiMeetConferenceEvents from '../../ConferenceEvents';
6
 
7
 
7
 const ConferenceEvents = JitsiMeetJS.events.conference;
8
 const ConferenceEvents = JitsiMeetJS.events.conference;
8
 
9
 
23
         this._remoteControlEventsListener
24
         this._remoteControlEventsListener
24
             = this._onRemoteControlEvent.bind(this);
25
             = this._onRemoteControlEvent.bind(this);
25
         this._userLeftListener = this._onUserLeft.bind(this);
26
         this._userLeftListener = this._onUserLeft.bind(this);
27
+        this._hangupListener = this._onHangup.bind(this);
26
     }
28
     }
27
 
29
 
28
     /**
30
     /**
40
             APP.conference.addConferenceListener(
42
             APP.conference.addConferenceListener(
41
                 ConferenceEvents.ENDPOINT_MESSAGE_RECEIVED,
43
                 ConferenceEvents.ENDPOINT_MESSAGE_RECEIVED,
42
                 this._remoteControlEventsListener);
44
                 this._remoteControlEventsListener);
45
+            APP.conference.addListener(JitsiMeetConferenceEvents.BEFORE_HANGUP,
46
+                this._hangupListener);
43
         } else {
47
         } else {
44
             logger.log("Remote control receiver disabled.");
48
             logger.log("Remote control receiver disabled.");
45
             this._stop(true);
49
             this._stop(true);
47
             APP.conference.removeConferenceListener(
51
             APP.conference.removeConferenceListener(
48
                 ConferenceEvents.ENDPOINT_MESSAGE_RECEIVED,
52
                 ConferenceEvents.ENDPOINT_MESSAGE_RECEIVED,
49
                 this._remoteControlEventsListener);
53
                 this._remoteControlEventsListener);
54
+            APP.conference.removeListener(
55
+                JitsiMeetConferenceEvents.BEFORE_HANGUP,
56
+                this._hangupListener);
50
         }
57
         }
51
     }
58
     }
52
 
59
 
174
             this._stop();
181
             this._stop();
175
         }
182
         }
176
     }
183
     }
184
+
185
+    /**
186
+     * Handles hangup events. Disables the receiver.
187
+     */
188
+    _onHangup() {
189
+        this.enable(false);
190
+    }
177
 }
191
 }

正在加载...
取消
保存