Browse Source

Add jsdocs

dev1
Lyubomir Marinov 9 years ago
parent
commit
dee489bca4

+ 4
- 4
modules/statistics/RTPStatsCollector.js View File

1
 /* global require */
1
 /* global require */
2
 /* jshint -W101 */
2
 /* jshint -W101 */
3
 
3
 
4
+var GlobalOnErrorHandler = require("../util/GlobalOnErrorHandler");
4
 var logger = require("jitsi-meet-logger").getLogger(__filename);
5
 var logger = require("jitsi-meet-logger").getLogger(__filename);
5
 var RTCBrowserType = require("../RTC/RTCBrowserType");
6
 var RTCBrowserType = require("../RTC/RTCBrowserType");
6
-var StatisticsEvents = require("../../service/statistics/Events");
7
-var GlobalOnErrorHandler = require("../util/GlobalOnErrorHandler");
7
+import * as StatisticsEvents from "../../service/statistics/Events";
8
 
8
 
9
 /* Whether we support the browser we are running into for logging statistics */
9
 /* Whether we support the browser we are running into for logging statistics */
10
 var browserSupported = RTCBrowserType.isChrome() ||
10
 var browserSupported = RTCBrowserType.isChrome() ||
784
         if (audioLevel) {
784
         if (audioLevel) {
785
             const isLocal = !getStatValue(now, 'packetsReceived');
785
             const isLocal = !getStatValue(now, 'packetsReceived');
786
 
786
 
787
-            // TODO: can't find specs about what this value really is,
788
-            // but it seems to vary between 0 and around 32k.
787
+            // TODO: Can't find specs about what this value really is, but it
788
+            // seems to vary between 0 and around 32k.
789
             audioLevel = audioLevel / 32767;
789
             audioLevel = audioLevel / 32767;
790
             ssrcStats.setSsrcAudioLevel(audioLevel);
790
             ssrcStats.setSsrcAudioLevel(audioLevel);
791
             this.eventEmitter.emit(
791
             this.eventEmitter.emit(

+ 6
- 6
modules/statistics/statistics.js View File

1
 /* global require */
1
 /* global require */
2
-var LocalStats = require("./LocalStatsCollector.js");
3
-var logger = require("jitsi-meet-logger").getLogger(__filename);
4
-var RTPStats = require("./RTPStatsCollector.js");
5
-var EventEmitter = require("events");
6
-var StatisticsEvents = require("../../service/statistics/Events");
7
 var AnalyticsAdapter = require("./AnalyticsAdapter");
2
 var AnalyticsAdapter = require("./AnalyticsAdapter");
8
 var CallStats = require("./CallStats");
3
 var CallStats = require("./CallStats");
9
-var ScriptUtil = require('../util/ScriptUtil');
4
+var EventEmitter = require("events");
10
 import JitsiTrackError from "../../JitsiTrackError";
5
 import JitsiTrackError from "../../JitsiTrackError";
6
+var logger = require("jitsi-meet-logger").getLogger(__filename);
7
+var LocalStats = require("./LocalStatsCollector.js");
8
+var RTPStats = require("./RTPStatsCollector.js");
9
+var ScriptUtil = require('../util/ScriptUtil');
10
+import * as StatisticsEvents from "../../service/statistics/Events";
11
 
11
 
12
 /**
12
 /**
13
  * True if callstats API is loaded
13
  * True if callstats API is loaded

+ 62
- 24
modules/talkmuted/TalkMutedDetection.js View File

17
          */
17
          */
18
         this._callback = callback;
18
         this._callback = callback;
19
 
19
 
20
+        /**
21
+         * The indicator which determines whether <tt>callback</tt> has been
22
+         * invoked for the current local audio track of <tt>conference</tt> so
23
+         * that it is invoked once only.
24
+         *
25
+         * @private
26
+         */
27
+        this._eventFired = false;
28
+
29
+        // XXX I went back and forth on the subject of where to put the access
30
+        // to statistics. On the one had, (1) statistics is likely intended to
31
+        // be private to conference and (2) there is a desire to keep the
32
+        // dependencies of modules to the minimum (i.e. not have
33
+        // TalkMutedDetection depend on statistics). On the other hand, (1)
34
+        // statistics is technically not private because
35
+        // JitsiConferenceEventManager accesses it and (2) TalkMutedDetection
36
+        // works exactly because it knows that there are no audio levels for
37
+        // JitsiLocalTrack but there are audio levels for the local participant
38
+        // through statistics.
20
         conference.statistics.addAudioLevelListener(
39
         conference.statistics.addAudioLevelListener(
21
-            this.audioLevelListener.bind(this));
40
+            this._audioLevel.bind(this));
41
+
22
         conference.on(
42
         conference.on(
23
             JitsiConferenceEvents.TRACK_MUTE_CHANGED,
43
             JitsiConferenceEvents.TRACK_MUTE_CHANGED,
24
             this._trackMuteChanged.bind(this));
44
             this._trackMuteChanged.bind(this));
25
         conference.on(
45
         conference.on(
26
             JitsiConferenceEvents.TRACK_ADDED,
46
             JitsiConferenceEvents.TRACK_ADDED,
27
             this._trackAdded.bind(this));
47
             this._trackAdded.bind(this));
28
-
29
-        // we track firing the event, in order to avoid sending too many events
30
-        this.eventFired = false;
31
     }
48
     }
32
 
49
 
33
     /**
50
     /**
34
-     * Receives audio level events for all send/receive streams.
35
-     * @param ssrc the ssrc of the stream
36
-     * @param level the current audio level
37
-     * @param isLocal whether this is local or remote stream (sent or received)
51
+     * Receives audio level events for all send and receive streams.
52
+     *
53
+     * @param ssrc - The synchronization source identifier (SSRC) of the
54
+     * endpoint/participant/stream being reported.
55
+     * @param {number} audioLevel - The audio level of <tt>ssrc</tt>.
56
+     * @param {boolean} isLocal - <tt>true</tt> if <tt>ssrc</tt> represents a
57
+     * local/send stream or <tt>false</tt> for a remote/receive stream.
38
      */
58
      */
39
-    audioLevelListener(ssrc, level, isLocal) {
40
-        // we are interested only in local audio stream
41
-        // and if event is not already sent
42
-        if (!isLocal || !this.audioTrack || this.eventFired)
59
+    _audioLevel(ssrc, audioLevel, isLocal) {
60
+        // We are interested in the local audio stream only and if event is not
61
+        // sent yet.
62
+        if (!isLocal || !this.audioTrack || this._eventFired)
43
             return;
63
             return;
44
 
64
 
45
-        if (this.audioTrack.isMuted() && level > 0.6) {
46
-            this.eventFired = true;
65
+        if (this.audioTrack.isMuted() && audioLevel > 0.6) {
66
+            this._eventFired = true;
47
             this._callback();
67
             this._callback();
48
         }
68
         }
49
     }
69
     }
50
 
70
 
51
     /**
71
     /**
52
-     * Adds local tracks. We are interested only in the audio one.
53
-     * @param track
72
+     * Determines whether a specific {@link JitsiTrack} represents a local audio
73
+     * track.
74
+     *
75
+     * @param {JitsiTrack} track - The <tt>JitsiTrack</tt> to be checked whether
76
+     * it represents a local audio track.
54
      * @private
77
      * @private
78
+     * @return {boolean} - <tt>true</tt> if the specified <tt>track</tt>
79
+     * represents a local audio track; otherwise, <tt>false</tt>.
55
      */
80
      */
56
-    _trackAdded(track) {
57
-        if (!track.isAudioTrack() || !track.isLocal())
58
-            return;
81
+    _isLocalAudioTrack(track) {
82
+        return track.isAudioTrack() && track.isLocal();
83
+    }
59
 
84
 
60
-        this.audioTrack = track;
85
+    /**
86
+     * Notifies this <tt>TalkMutedDetection</tt> that a {@link JitsiTrack} was
87
+     * added to the associated {@link JitsiConference}. Looks for the local
88
+     * audio track only.
89
+     *
90
+     * @param {JitsiTrack} track - The added <tt>JitsiTrack</tt>.
91
+     * @private
92
+     */
93
+    _trackAdded(track) {
94
+        if (this._isLocalAudioTrack(track))
95
+            this.audioTrack = track;
61
     }
96
     }
62
 
97
 
63
     /**
98
     /**
64
-     * Mute changed for a track.
65
-     * @param track the track which mute state has changed.
99
+     * Notifies this <tt>TalkMutedDetection</tt> that the mute state of a
100
+     * {@link JitsiTrack} has changed. Looks for the local audio track only.
101
+     *
102
+     * @param {JitsiTrack} track - The <tt>JitsiTrack</tt> whose mute state has
103
+     * changed.
66
      * @private
104
      * @private
67
      */
105
      */
68
     _trackMuteChanged(track) {
106
     _trackMuteChanged(track) {
69
-        if (track.isLocal() && track.isAudioTrack() && track.isMuted())
70
-            this.eventFired = false;
107
+        if (this._isLocalAudioTrack(track) && track.isMuted())
108
+            this._eventFired = false;
71
     }
109
     }
72
 }
110
 }

+ 26
- 18
service/statistics/Events.js View File

1
-module.exports = {
2
-    /**
3
-     * Notifies for audio level in rtp statistics by ssrc.
4
-     */
5
-    AUDIO_LEVEL: "statistics.audioLevel",
6
-    /**
7
-     * Notifies about audio problem with remote participant.
8
-     */
9
-    AUDIO_NOT_WORKING: "statistics.audio_not_working",
10
-    /**
11
-     * An event carrying connection statistics.
12
-     */
13
-    CONNECTION_STATS: "statistics.connectionstats",
14
-    /**
15
-     * An event carrying all statistics by ssrc.
16
-     */
17
-    BYTE_SENT_STATS: "statistics.byte_sent_stats"
18
-};
1
+/**
2
+ * Notifies about audio level in RTP statistics by SSRC.
3
+ *
4
+ * @param ssrc - The synchronization source identifier (SSRC) of the
5
+ * endpoint/participant whose audio level is being reported.
6
+ * @param {number} audioLevel - The audio level of <tt>ssrc</tt> according to
7
+ * RTP statistics.
8
+ * @param {boolean} isLocal - <tt>true</tt> if <tt>ssrc</tt> identifies the
9
+ * local endpoint/participant; otherwise, <tt>false</tt>.
10
+ */
11
+export const AUDIO_LEVEL = "statistics.audioLevel";
12
+
13
+/**
14
+ * Notifies about audio problem with remote participant.
15
+ */
16
+export const AUDIO_NOT_WORKING = "statistics.audio_not_working";
17
+
18
+/**
19
+ * An event carrying connection statistics.
20
+ */
21
+export const CONNECTION_STATS = "statistics.connectionstats";
22
+
23
+/**
24
+ * An event carrying all statistics by ssrc.
25
+ */
26
+export const BYTE_SENT_STATS = "statistics.byte_sent_stats";

Loading…
Cancel
Save