| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 | 
							- /* @flow */
 - 
 - import { toState } from '../redux';
 - 
 - import { VIDEO_MUTISM_AUTHORITY } from './constants';
 - 
 - /**
 -  * Determines whether video is currently muted by the audio-only authority.
 -  *
 -  * @param {Function|Object} stateful - The redux store, state, or
 -  * {@code getState} function.
 -  * @returns {boolean}
 -  */
 - export function isVideoMutedByAudioOnly(stateful: Function | Object) {
 -     return (
 -         _isVideoMutedByAuthority(stateful, VIDEO_MUTISM_AUTHORITY.AUDIO_ONLY));
 - }
 - 
 - /**
 -  * Determines whether video is currently muted by a specific
 -  * {@code VIDEO_MUTISM_AUTHORITY}.
 -  *
 -  * @param {Function|Object} stateful - The redux store, state, or
 -  * {@code getState} function.
 -  * @param {number} videoMutismAuthority - The {@code VIDEO_MUTISM_AUTHORITY}
 -  * which is to be checked whether it has muted video.
 -  * @returns {boolean} If video is currently muted by the specified
 -  * {@code videoMutismAuthority}, then {@code true}; otherwise, {@code false}.
 -  */
 - function _isVideoMutedByAuthority(
 -         stateful: Function | Object,
 -         videoMutismAuthority: number) {
 -     const { muted } = toState(stateful)['features/base/media'].video;
 - 
 -     // eslint-disable-next-line no-bitwise
 -     return Boolean(muted & videoMutismAuthority);
 - }
 - 
 - /**
 -  * Determines whether video is currently muted by the user authority.
 -  *
 -  * @param {Function|Object} stateful - The redux store, state, or
 -  * {@code getState} function.
 -  * @returns {boolean}
 -  */
 - export function isVideoMutedByUser(stateful: Function | Object) {
 -     return _isVideoMutedByAuthority(stateful, VIDEO_MUTISM_AUTHORITY.USER);
 - }
 - 
 - /**
 -  * Determines whether a specific videoTrack should be rendered.
 -  *
 -  * @param {Track} videoTrack - The video track which is to be rendered.
 -  * @param {boolean} waitForVideoStarted - True if the specified videoTrack
 -  * should be rendered only after its associated video has started;
 -  * otherwise, false.
 -  * @returns {boolean} True if the specified videoTrack should be renderd;
 -  * otherwise, false.
 -  */
 - export function shouldRenderVideoTrack(
 -         videoTrack: { muted: boolean, videoStarted: boolean },
 -         waitForVideoStarted: boolean) {
 -     return (
 -         videoTrack
 -             && !videoTrack.muted
 -             && (!waitForVideoStarted || videoTrack.videoStarted));
 - }
 
 
  |