| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 | 
							- var ConnectionQuality = (function () {
 - 
 -     /**
 -      * Constructs new ConnectionQuality object
 -      * @constructor
 -      */
 -     function ConnectionQuality() {
 - 
 -     }
 - 
 -     /**
 -      * local stats
 -      * @type {{}}
 -      */
 -     var stats = {};
 - 
 -     /**
 -      * remote stats
 -      * @type {{}}
 -      */
 -     var remoteStats = {};
 - 
 -     /**
 -      * Interval for sending statistics to other participants
 -      * @type {null}
 -      */
 -     var sendIntervalId = null;
 - 
 -     /**
 -      * Updates the local statistics
 -      * @param data new statistics
 -      */
 -     ConnectionQuality.updateLocalStats = function (data) {
 -         stats = data;
 -         VideoLayout.updateLocalConnectionStats(100 - stats.packetLoss.total,stats);
 -         if(sendIntervalId == null)
 -         {
 -             startSendingStats();
 -         }
 -     };
 - 
 -     /**
 -      * Start statistics sending.
 -      */
 -     function startSendingStats() {
 -         sendStats();
 -         sendIntervalId = setInterval(sendStats, 10000);
 -     }
 - 
 -     /**
 -      * Sends statistics to other participants
 -      */
 -     function sendStats() {
 -         connection.emuc.addConnectionInfoToPresence(convertToMUCStats(stats));
 -         connection.emuc.sendPresence();
 -     }
 - 
 -     /**
 -      * Converts statistics to format for sending through XMPP
 -      * @param stats the statistics
 -      * @returns {{bitrate_donwload: *, bitrate_uplpoad: *, packetLoss_total: *, packetLoss_download: *, packetLoss_upload: *}}
 -      */
 -     function convertToMUCStats(stats) {
 -         return {
 -             "bitrate_download": stats.bitrate.download,
 -             "bitrate_upload": stats.bitrate.upload,
 -             "packetLoss_total": stats.packetLoss.total,
 -             "packetLoss_download": stats.packetLoss.download,
 -             "packetLoss_upload": stats.packetLoss.upload
 -         };
 -     }
 - 
 -     /**
 -      * Converts statitistics to format used by VideoLayout
 -      * @param stats
 -      * @returns {{bitrate: {download: *, upload: *}, packetLoss: {total: *, download: *, upload: *}}}
 -      */
 -     function parseMUCStats(stats) {
 -         return {
 -             bitrate: {
 -                 download: stats.bitrate_download,
 -                 upload: stats.bitrate_upload
 -             },
 -             packetLoss: {
 -                 total: stats.packetLoss_total,
 -                 download: stats.packetLoss_download,
 -                 upload: stats.packetLoss_upload
 -             }
 -         };
 -     }
 - 
 -     /**
 -      * Updates remote statistics
 -      * @param jid the jid associated with the statistics
 -      * @param data the statistics
 -      */
 -     ConnectionQuality.updateRemoteStats = function (jid, data) {
 -         if(data == null || data.packetLoss_total == null)
 -         {
 -             VideoLayout.updateConnectionStats(jid, null, null);
 -             return;
 -         }
 -         remoteStats[jid] = parseMUCStats(data);
 - 
 -         VideoLayout.updateConnectionStats(jid, 100 - data.packetLoss_total,remoteStats[jid]);
 - 
 -     };
 - 
 -     /**
 -      * Stops statistics sending.
 -      */
 -     ConnectionQuality.stopSendingStats = function () {
 -         clearInterval(sendIntervalId);
 -         sendIntervalId = null;
 -         //notify UI about stopping statistics gathering
 -         VideoLayout.onStatsStop();
 -     };
 - 
 -     /**
 -      * Returns the local statistics.
 -      */
 -     ConnectionQuality.getStats = function () {
 -         return stats;
 -     }
 - 
 -     return ConnectionQuality;
 - })();
 
 
  |