Lyubomir Marinov d55e0f70d9 Import jitsi/jitsi-meet-react#2f23d98
As an intermediate step on the path to merging jitsi-meet and
jitsi-meet-react, import the whole source code of jitsi-meet-react as it
stands at
2f23d98424
i.e. the lastest master at the time of this import. No modifications are
applied to the imported source code in order to preserve a complete
snapshot of it in the repository of jitsi-meet and, thus, facilitate
comparison later on. Consequently, the source code of jitsi-meet and/or
jitsi-meet-react may not work. For example, jitsi-meet's jshint may be
unable to parse jitsi-meet-react's source code.
2016-10-12 10:31:52 -05:00

94 lines
2.4 KiB
JavaScript

import { MEDIA_TYPE } from '../media';
/**
* Returns local audio track.
*
* @param {Track[]} tracks - List of all tracks.
* @returns {(Track|undefined)}
*/
export function getLocalAudioTrack(tracks) {
return getLocalTrack(tracks, MEDIA_TYPE.AUDIO);
}
/**
* Returns local track by media type.
*
* @param {Track[]} tracks - List of all tracks.
* @param {MEDIA_TYPE} mediaType - Media type.
* @returns {(Track|undefined)}
*/
export function getLocalTrack(tracks, mediaType) {
return tracks.find(t => t.local && t.mediaType === mediaType);
}
/**
* Returns local video track.
*
* @param {Track[]} tracks - List of all tracks.
* @returns {(Track|undefined)}
*/
export function getLocalVideoTrack(tracks) {
return getLocalTrack(tracks, MEDIA_TYPE.VIDEO);
}
/**
* Returns track of specified media type for specified participant id.
*
* @param {Track[]} tracks - List of all tracks.
* @param {MEDIA_TYPE} mediaType - Media type.
* @param {string} participantId - Participant ID.
* @returns {(Track|undefined)}
*/
export function getTrackByMediaTypeAndParticipant(
tracks,
mediaType,
participantId) {
return tracks.find(
t => t.participantId === participantId && t.mediaType === mediaType
);
}
/**
* Returns the track if any which corresponds to a specific instance
* of JitsiLocalTrack or JitsiRemoteTrack.
*
* @param {Track[]} tracks - List of all tracks.
* @param {(JitsiLocalTrack|JitsiRemoteTrack)} jitsiTrack - JitsiTrack instance.
* @returns {(Track|undefined)}
*/
export function getTrackByJitsiTrack(tracks, jitsiTrack) {
return tracks.find(t => t.jitsiTrack === jitsiTrack);
}
/**
* Returns tracks of specified media type.
*
* @param {Track[]} tracks - List of all tracks.
* @param {MEDIA_TYPE} mediaType - Media type.
* @returns {Track[]}
*/
export function getTracksByMediaType(tracks, mediaType) {
return tracks.filter(t => t.mediaType === mediaType);
}
/**
* Mute or unmute local track if any.
*
* @param {JitsiLocalTrack} track - Track instance.
* @param {boolean} muted - If audio stream should be muted or unmuted.
* @returns {Promise}
*/
export function setTrackMuted(track, muted) {
if (!track) {
return Promise.resolve();
}
const f = muted ? 'mute' : 'unmute';
return track[f]()
.catch(err => {
console.warn(`Track ${f} was rejected:`, err);
throw err;
});
}