|
|
@@ -7,6 +7,8 @@ var AudioLevels = (function(my) {
|
|
7
|
7
|
var SHADOW_COLOR = '#00ccff';
|
|
8
|
8
|
var audioLevelCanvasCache = {};
|
|
9
|
9
|
|
|
|
10
|
+ my.LOCAL_LEVEL = 'local';
|
|
|
11
|
+
|
|
10
|
12
|
/**
|
|
11
|
13
|
* Updates the audio level canvas for the given peerJid. If the canvas
|
|
12
|
14
|
* didn't exist we create it.
|
|
|
@@ -71,17 +73,12 @@ var AudioLevels = (function(my) {
|
|
71
|
73
|
my.updateAudioLevel = function (resourceJid, audioLevel) {
|
|
72
|
74
|
drawAudioLevelCanvas(resourceJid, audioLevel);
|
|
73
|
75
|
|
|
74
|
|
- var videoSpanId = null;
|
|
75
|
|
- if (resourceJid
|
|
76
|
|
- === Strophe.getResourceFromJid(connection.emuc.myroomjid))
|
|
77
|
|
- videoSpanId = 'localVideoContainer';
|
|
78
|
|
- else
|
|
79
|
|
- videoSpanId = 'participant_' + resourceJid;
|
|
|
76
|
+ var videoSpanId = getVideoSpanId(resourceJid);
|
|
80
|
77
|
|
|
81
|
78
|
var audioLevelCanvas = $('#' + videoSpanId + '>canvas').get(0);
|
|
82
|
79
|
|
|
83
|
80
|
if (!audioLevelCanvas)
|
|
84
|
|
- return ;
|
|
|
81
|
+ return;
|
|
85
|
82
|
|
|
86
|
83
|
var drawContext = audioLevelCanvas.getContext('2d');
|
|
87
|
84
|
|
|
|
@@ -92,6 +89,9 @@ var AudioLevels = (function(my) {
|
|
92
|
89
|
drawContext.drawImage(canvasCache, 0, 0);
|
|
93
|
90
|
};
|
|
94
|
91
|
|
|
|
92
|
+ /**
|
|
|
93
|
+ * Resizes the given audio level canvas to match the given thumbnail size.
|
|
|
94
|
+ */
|
|
95
|
95
|
function resizeAudioLevelCanvas(audioLevelCanvas,
|
|
96
|
96
|
thumbnailWidth,
|
|
97
|
97
|
thumbnailHeight) {
|
|
|
@@ -108,12 +108,8 @@ var AudioLevels = (function(my) {
|
|
108
|
108
|
*/
|
|
109
|
109
|
function drawAudioLevelCanvas(resourceJid, audioLevel) {
|
|
110
|
110
|
if (!audioLevelCanvasCache[resourceJid]) {
|
|
111
|
|
- var videoSpanId = null;
|
|
112
|
|
- if (resourceJid
|
|
113
|
|
- === Strophe.getResourceFromJid(connection.emuc.myroomjid))
|
|
114
|
|
- videoSpanId = 'localVideoContainer';
|
|
115
|
|
- else
|
|
116
|
|
- videoSpanId = 'participant_' + resourceJid;
|
|
|
111
|
+
|
|
|
112
|
+ var videoSpanId = getVideoSpanId(resourceJid);
|
|
117
|
113
|
|
|
118
|
114
|
var audioLevelCanvasOrig = $('#' + videoSpanId + '>canvas').get(0);
|
|
119
|
115
|
|
|
|
@@ -173,6 +169,22 @@ var AudioLevels = (function(my) {
|
|
173
|
169
|
return shadowLevel;
|
|
174
|
170
|
};
|
|
175
|
171
|
|
|
|
172
|
+ /**
|
|
|
173
|
+ * Returns the video span id corresponding to the given resourceJid or local
|
|
|
174
|
+ * user.
|
|
|
175
|
+ */
|
|
|
176
|
+ function getVideoSpanId(resourceJid) {
|
|
|
177
|
+ var videoSpanId = null;
|
|
|
178
|
+ if (resourceJid === AudioLevels.LOCAL_LEVEL
|
|
|
179
|
+ || (connection.emuc.myroomjid && resourceJid
|
|
|
180
|
+ === Strophe.getResourceFromJid(connection.emuc.myroomjid)))
|
|
|
181
|
+ videoSpanId = 'localVideoContainer';
|
|
|
182
|
+ else
|
|
|
183
|
+ videoSpanId = 'participant_' + resourceJid;
|
|
|
184
|
+
|
|
|
185
|
+ return videoSpanId;
|
|
|
186
|
+ };
|
|
|
187
|
+
|
|
176
|
188
|
/**
|
|
177
|
189
|
* Indicates that the remote video has been resized.
|
|
178
|
190
|
*/
|