12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- // @flow
-
- import { getLocalVideoTrack } from '../../features/base/tracks';
-
- import { BLUR_DISABLED, BLUR_ENABLED } from './actionTypes';
- import { getBlurEffect } from './functions';
- import logger from './logger';
-
- /**
- * Signals the local participant is switching between blurred or non blurred video.
- *
- * @param {boolean} enabled - If true enables video blur, false otherwise.
- * @returns {Promise}
- */
- export function toggleBlurEffect(enabled: boolean) {
- return function(dispatch: (Object) => Object, getState: () => any) {
- const state = getState();
-
- if (state['features/blur'].blurEnabled !== enabled) {
- const { jitsiTrack } = getLocalVideoTrack(state['features/base/tracks']);
-
- return getBlurEffect()
- .then(blurEffectInstance =>
- jitsiTrack.setEffect(enabled ? blurEffectInstance : undefined)
- .then(() => {
- enabled ? dispatch(blurEnabled()) : dispatch(blurDisabled());
- })
- .catch(error => {
- enabled ? dispatch(blurDisabled()) : dispatch(blurEnabled());
- logger.error('setEffect failed with error:', error);
- })
- )
- .catch(error => {
- dispatch(blurDisabled());
- logger.error('getBlurEffect failed with error:', error);
- });
- }
-
- return Promise.resolve();
- };
- }
-
- /**
- * Signals the local participant that the blur has been enabled.
- *
- * @returns {{
- * type: BLUR_ENABLED
- * }}
- */
- export function blurEnabled() {
- return {
- type: BLUR_ENABLED
- };
- }
-
- /**
- * Signals the local participant that the blur has been disabled.
- *
- * @returns {{
- * type: BLUR_DISABLED
- * }}
- */
- export function blurDisabled() {
- return {
- type: BLUR_DISABLED
- };
- }
|