12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- // @flow
-
- import { MEDIA_TYPE } from '../media';
- import { getTrackByMediaTypeAndParticipant } from '../tracks';
-
- /**
- * Indicates whether the test mode is enabled. When it's enabled
- * {@link TestHint} and other components from the testing package will be
- * rendered in various places across the app to help with automatic testing.
- *
- * @param {Object} state - The redux store state.
- * @returns {boolean}
- */
- export function isTestModeEnabled(state: Object): boolean {
- const testingConfig = state['features/base/config'].testing;
-
- return Boolean(testingConfig && testingConfig.testMode);
- }
-
- /**
- * Returns the video type of the remote participant's video.
- *
- * @param {Store} store - The redux store.
- * @param {string} id - The participant ID for the remote video.
- * @returns {MEDIA_TYPE}
- */
- export function getRemoteVideoType({ getState }: Object, id: String): boolean {
- return getTrackByMediaTypeAndParticipant(getState()['features/base/tracks'], MEDIA_TYPE.VIDEO, id)?.videoType;
- }
-
- /**
- * Returns whether the last media event received for large video indicates that the video is playing, if not muted.
- *
- * @param {Store} store - The redux store.
- * @returns {boolean}
- */
- export function isLargeVideoReceived({ getState }: Object): boolean {
- const largeVideoParticipantId = getState()['features/large-video'].participantId;
- const videoTrack = getTrackByMediaTypeAndParticipant(
- getState()['features/base/tracks'], MEDIA_TYPE.VIDEO, largeVideoParticipantId);
- const lastMediaEvent = getState()['features/large-video']?.lastMediaEvent;
-
- return videoTrack && !videoTrack.muted && (lastMediaEvent === 'playing' || lastMediaEvent === 'canplaythrough');
- }
-
- /**
- * Returns whether the last media event received for a remote video indicates that the video is playing, if not muted.
- *
- * @param {Store} store - The redux store.
- * @param {string} id - The participant ID for the remote video.
- * @returns {boolean}
- */
- export function isRemoteVideoReceived({ getState }: Object, id: String): boolean {
- const videoTrack = getTrackByMediaTypeAndParticipant(getState()['features/base/tracks'], MEDIA_TYPE.VIDEO, id);
- const lastMediaEvent = videoTrack?.lastMediaEvent;
-
- return videoTrack && !videoTrack.muted && (lastMediaEvent === 'playing' || lastMediaEvent === 'canplaythrough');
- }
|